Given a set S of vertices in a connected graph G, the classic Steiner tree problem asks for the minimum number of edges of a connected subgraph of G that contains S. We study this problem in the hypercube. Given a set S of vertices in the n-dimensional hypercube Q(n), the Steiner cost of S, denoted by cost(S), is the minimum number of edges among all connected subgraphs of Qn that contain S. We obtain the following results on cost(S). Let epsilon be any given small, positive constant, and set k -vertical bar S vertical bar. (1) [upper bound] For every set S we have cost(S) < (1/3 k+1+1/2 ln k)n. In particular, there is a constant c(1) depending only on epsilon such that if k > c(1), then cost(S) < (1/3+epsilon)kn. (2) We develop a randomized algorithm of running time O(kn) that produces a connected subgraph H of Q(n) containing S such that with probability approaching 1 as k, n ->infinity we have vertical bar E(H)vertical bar < (1/3+epsilon)kn. (3) [lower bound] There are constants c(2) and b (with 1 < b < 2) depending only on epsilon such that if c(2) < k < b(n), then as n -> infinity almost all sets S of size k in Q(n) satisfy cost(S) > (1/3 - epsilon)kn. Thus for k in this range with k. 8, the upper bound (1) is asymptotically tight. We also show that for fixed k, as n. 8, almost always a random family of k vertices in Qn satisfies [k/3 + 2/9 (-1 + (-1/2)(k))]n - root n ln n <= cost(S) <= [k/3 + 2/9 (-1 + (-1/2)(k))]n + root n ln n.