When is a flat morphism open?
Let me just say the finite type hypothesis is 100% necessary; otherwise the result is false. Consider the inclusion $k[t] \to k(t)$. A module over a PID is flat iff it is torsion-free, so the induced map on spec here is flat. But $\operatorname{Spec} k(t)\to \operatorname{Spec} k[t]$ is not open!
Just to comment, the finite type and Noetherian hypotheses are probably so one can give a quick proof using Chevalley. The idea of this proof goes as follows:
- (General Topology) One can show that a constructible subset of a scheme is open if and only if it's closed under generization.
(General Topology) One can also show that $f:X\to Y$ is such that $f(X)$ is closed under generization if and only if $\text{Spec}(\mathcal{O}_{X,x})\to\text{Spec}(\mathcal{O}_{Y,f(x)})$ is surjective for all $x\in X$.
(Algebra) Then one proves the following easy fact: Let $(A,\mathfrak{m})\to (B,\mathfrak{n})$ be a local homomorphism, and $M$ a finitely generated $B$-module. Then, $M$ is faithfully flat over $A$ if and only if it is flat over $A$ and non-zero.
- (Algebra) One also checks that if $A\to B$ is faithfully flat, then $\text{Spec}(B)\to\text{Spec}(A)$ is surjective.
- Finally, to prove that $f$ is open (if it's flat, finite type and $X,Y$ Noetherian) we just put the pieces together. Clearly it suffices to show that $f(X)$ is open (because then apply this case to the map $U\hookrightarrow X\xrightarrow{f} Y$). By Chevalley's theorem we know that $f(X)$ is constructible. Thus, by 1. it suffices to prove that $f(X)$ is closed under generization. But, by 2. this is equivalent to checking that $\text{Spec}(\mathcal{O}_{X,x})\to\text{Spec}(\mathcal{O}_{Y,f(x)})$ is surjective for all $x\in X$. But, using 3. (with $A=\mathcal{O}_{Y,f(x)}$, $B=M=\mathcal{O}_{X,x}$) we see that $\mathcal{O}_{Y,f(x)}\to\mathcal{O}_{X,x}$ is faithfully flat, and so by 4. the induced map $\text{Spec}(\mathcal{O}_{X,x})\to\text{Spec}(\mathcal{O}_{Y,f(x)})$ is indeed surjective.
This proof can actually be adapted to the general case (of just finite presentation) by using Grothendieck's "passing to the limit" technique. Namely, we can reduce to the affine case $X=\text{Spec}(B)$ and $Y=\text{Spec}(A)$. We can then write $B=\varinjlim B_\lambda$ and $A=\varinjlim A_\lambda$ where $A_\lambda$ is a finitely generated algebra over $\mathbb{Z}$ (and so, in particular, Noetherian) and $B_\lambda$ is a finitely presented $A_\lambda$-algebra. We can then use the fact that since we're in the finitely presented case, there exists some $\lambda$ such that
$$\begin{matrix}\text{Spec} (B) & \to & \text{Spec}(B_\lambda)\\ \downarrow & & \downarrow\\ \text{Spec}(A) & \to & \text{Spec}(A_\lambda)\end{matrix}$$
is fibered.
For a reference for this limit technique, I would suggest looking at section 1.10 of Lei Fu's Etale Cohomology.
Flat and locally of finite presentation is sufficient, see (Stacks Project, 01UA).