[proofplan]
We first decompose $V$ into finitely many $\mathfrak h$-weight spaces and choose a maximal weight with respect to the partial order determined by the positive roots. A nonzero vector in this maximal weight space is killed by every positive root space, because any nonzero image would have a strictly larger weight. This produces a highest weight vector. Finally, the submodule generated by any highest weight vector is nonzero, so irreducibility forces it to be all of $V$.
[/proofplan]
[step:Decompose the module into finitely many weight spaces]
Let $\Phi^+$ denote the set of positive roots determined by the chosen triangular decomposition, so that
\begin{align*}
\mathfrak n^+=\bigoplus_{\alpha\in\Phi^+}\mathfrak g_\alpha.
\end{align*}
The module $V$ is finite-dimensional by hypothesis. Because $V$ is irreducible, it is a semisimple $\mathfrak g$-module: it is the [direct sum](/page/Direct%20Sum) of the single irreducible submodule $V$. Thus the hypotheses of [Weight Space Decomposition]([citetheorem:9360]) are satisfied for the finite-dimensional complex semisimple [Lie algebra](/page/Lie%20Algebra) $\mathfrak g$, the Cartan subalgebra $\mathfrak h$, and the finite-dimensional semisimple $\mathfrak g$-module $V$. Applying that theorem gives
\begin{align*}
V=\bigoplus_{\mu\in\mathfrak h^*}V_\mu,
\end{align*}
where only finitely many weight spaces are nonzero. Define the finite weight set
\begin{align*}
\operatorname{Wt}(V):=\{\mu\in\mathfrak h^*:V_\mu\ne 0\}.
\end{align*}
Since $V\ne 0$, the set $\operatorname{Wt}(V)$ is nonempty.
[/step]
[step:Choose a maximal weight for the positive-root order]
Define the positive root monoid
\begin{align*}
Q_+:=\left\{\sum_{\alpha\in\Phi^+}m_\alpha\alpha:m_\alpha\in\mathbb N_0 \text{ and all but finitely many }m_\alpha=0\right\}.
\end{align*}
Define a relation $\le$ on $\mathfrak h^*$ by declaring that, for $\mu,\nu\in\mathfrak h^*$,
\begin{align*}
\mu\le\nu \quad \text{if and only if} \quad \nu-\mu\in Q_+.
\end{align*}
This relation is a partial order: reflexivity follows from $0\in Q_+$, transitivity follows from closure of $Q_+$ under addition, and antisymmetry follows from $Q_+\cap(-Q_+)=\{0\}$, since positive roots are nonnegative integer combinations of the simple roots determined by $\Phi^+$.
Since $\operatorname{Wt}(V)$ is a finite nonempty partially ordered set, it has a maximal element. Choose such a maximal weight and denote it by $\lambda\in\operatorname{Wt}(V)$. Choose a vector $v\in V_\lambda$ with $v\ne 0$.
[/step]
[step:Show positive root vectors kill the maximal weight vector]
Let $\alpha\in\Phi^+$ and let $x\in\mathfrak g_\alpha$. By [Root Operators Shift Weights]([citetheorem:9362]), applied to the $\mathfrak g$-module $V$, the weight $\lambda$, and the root vector $x\in\mathfrak g_\alpha$, we have
\begin{align*}
xV_\lambda\subset V_{\lambda+\alpha}.
\end{align*}
Since $\alpha\in Q_+$ and $\alpha\ne 0$, the weight $\lambda+\alpha$ is strictly larger than $\lambda$ in the positive-root order. Maximality of $\lambda$ in $\operatorname{Wt}(V)$ implies
\begin{align*}
V_{\lambda+\alpha}=0.
\end{align*}
Therefore $xv=0$.
As this holds for every $\alpha\in\Phi^+$ and every $x\in\mathfrak g_\alpha$, and since $\mathfrak n^+$ is the direct sum of the positive root spaces, every element of $\mathfrak n^+$ kills $v$.
[guided]
The goal is to prove that the vector chosen in the maximal weight space is killed by all of $\mathfrak n^+$. It is enough to check each positive root space separately, because the triangular decomposition gives
\begin{align*}
\mathfrak n^+=\bigoplus_{\alpha\in\Phi^+}\mathfrak g_\alpha.
\end{align*}
Fix a positive root $\alpha\in\Phi^+$ and a root vector $x\in\mathfrak g_\alpha$. Since $v\in V_\lambda$, the root-shifting result [Root Operators Shift Weights]([citetheorem:9362]) applies to the $\mathfrak g$-module $V$, the weight $\lambda$, the root $\alpha$, and the element $x\in\mathfrak g_\alpha$. Its conclusion is
\begin{align*}
xV_\lambda\subset V_{\lambda+\alpha}.
\end{align*}
Thus $xv$ is either zero or has weight $\lambda+\alpha$.
Now we use why $\lambda$ was chosen maximal. Because $\alpha$ is a positive root, it belongs to $Q_+$ and is nonzero. Hence
\begin{align*}
\lambda<\lambda+\alpha
\end{align*}
in the partial order defined by positive roots. If $V_{\lambda+\alpha}$ were nonzero, then $\lambda+\alpha$ would belong to $\operatorname{Wt}(V)$, contradicting the maximality of $\lambda$. Therefore
\begin{align*}
V_{\lambda+\alpha}=0.
\end{align*}
Since $xv\in V_{\lambda+\alpha}$, we get $xv=0$.
This argument holds for every positive root $\alpha$ and every $x\in\mathfrak g_\alpha$. If $y\in\mathfrak n^+$, then $y$ has a finite decomposition
\begin{align*}
y=\sum_{\alpha\in\Phi^+}y_\alpha
\end{align*}
with $y_\alpha\in\mathfrak g_\alpha$. Each term satisfies $y_\alpha v=0$, so
\begin{align*}
yv=\sum_{\alpha\in\Phi^+}y_\alpha v=0.
\end{align*}
Thus every element of $\mathfrak n^+$ kills $v$.
[/guided]
[/step]
[step:Identify the chosen vector as a highest weight vector]
Since $v\in V_\lambda$, the definition of the weight space gives
\begin{align*}
hv=\lambda(h)v
\end{align*}
for every $h\in\mathfrak h$. The previous step proves that
\begin{align*}
xv=0
\end{align*}
for every $x\in\mathfrak n^+$. Since $v\ne 0$, the vector $v$ is a highest weight vector of weight $\lambda$.
[/step]
[step:Use irreducibility to prove generation by any highest weight vector]
Let $w\in V$ be any highest weight vector. By definition, $w\ne 0$. Define
\begin{align*}
U(\mathfrak g)w:=\{uw:u\in U(\mathfrak g)\}\subset V.
\end{align*}
This is the $\mathfrak g$-submodule of $V$ generated by $w$, and it is nonzero because $1w=w\ne 0$. Since $V$ is irreducible, its only $\mathfrak g$-submodules are $0$ and $V$. Hence
\begin{align*}
U(\mathfrak g)w=V.
\end{align*}
Applying this to any highest weight vector in $V$ proves the stated generation property.
[/step]