Here's a reduction to the finite dimensional case.  Let F be a finite set of subspaces of X.  For each finite dimensional subspace Y of X, let u(Y) be the set of elements Z of F such that Y is contained in Z.  By assumption, u(Y) is non-empty for every Y.  Since any two finite dimensional subspaces are contained in a third, the intersection of the sets u(Y), as Y runs among all finite dimensional subspaces of X, is non-empty.  Hence there is at least one set in F that contains every finite dimensional subspace of X, hence contains X.

For the finite dimensional case, let F be a finite set of subspaces of X.  By induction, every codimension 1 subspace of X is contained in some Y from F.  But there are infinitely many codimension 1 subspaces, so some Y in F contains more than one such subspace.  Any two distinct codimension 1 subspaces span X (if dim X > 1) so Y = X.