[proofplan]
We show that the image of the Thom class under the natural map $q: H^d(E, E^\#; R) \to H^d(E; R)$ equals $\pi^*(e(E))$, from which the identity $u_E \smile u_E = \pi^*(e(E)) \smile u_E = \Phi(e(E))$ follows immediately. The key is that the projection $\pi$ and the zero section $s_0$ are homotopy inverses (the contraction along fibers provides the homotopy), so $\pi^* \circ s_0^* = \operatorname{id}^*$ on $H^*(E; R)$.
[/proofplan]
[step:Express $u_E \smile u_E$ in terms of $q(u_E)$]
The cup product $u_E \smile u_E$ lives in $H^{2d}(E, E^\#; R)$. By the relative cup product structure, we can write
\begin{align*}
u_E \smile u_E = q(u_E) \smile u_E,
\end{align*}
where $q: H^d(E, E^\#; R) \to H^d(E; R)$ is the natural (forgetful) map from the long exact sequence of the pair $(E, E^\#)$, and the cup product on the right pairs $H^d(E; R) \times H^d(E, E^\#; R) \to H^{2d}(E, E^\#; R)$.
[/step]
[step:Show that $q(u_E) = \pi^*(e(E))$ using the homotopy inverse $s_0$]
The zero section $s_0: X \to E$ and the projection $\pi: E \to X$ satisfy $\pi \circ s_0 = \operatorname{id}_X$. Moreover, $s_0 \circ \pi: E \to E$ is homotopic to $\operatorname{id}_E$ via the fiberwise linear contraction:
\begin{align*}
H: E \times [0, 1] &\to E, \quad H(v, t) := t \cdot v.
\end{align*}
This satisfies $H(v, 1) = v = \operatorname{id}_E(v)$ and $H(v, 0) = 0_{\pi(v)} = s_0(\pi(v))$. Since homotopic maps induce equal maps on cohomology:
\begin{align*}
(s_0 \circ \pi)^* = \operatorname{id}_E^* \quad \text{on } H^*(E; R).
\end{align*}
Equivalently, $\pi^* \circ s_0^* = \operatorname{id}$ on $H^*(E; R)$. The Euler class is defined as $e(E) := s_0^*(q(u_E))$, so
\begin{align*}
\pi^*(e(E)) = \pi^*(s_0^*(q(u_E))) = (\pi^* \circ s_0^*)(q(u_E)) = \operatorname{id}^*(q(u_E)) = q(u_E).
\end{align*}
[guided]
Why are $\pi$ and $s_0$ homotopy inverses? The composition $\pi \circ s_0 = \operatorname{id}_X$ is immediate. The other composition $s_0 \circ \pi$ sends every vector $v \in E_x$ to the zero vector $0_x$ — it "crushes" each fiber to its origin. The linear homotopy $H(v, t) = tv$ continuously deforms the identity (at $t = 1$) to this crushing map (at $t = 0$), using the vector space structure of the fibers. This works because each fiber is contractible.
The identity $\pi^* \circ s_0^* = \operatorname{id}$ is extremely useful: it says that $\pi^*: H^*(X; R) \to H^*(E; R)$ is an isomorphism with inverse $s_0^*$. In particular, any class $\alpha \in H^*(E; R)$ is determined by its pullback $s_0^*(\alpha) \in H^*(X; R)$, and $\alpha = \pi^*(s_0^*(\alpha))$.
Applying this to $\alpha = q(u_E)$: its pullback along $s_0$ is $s_0^*(q(u_E)) = e(E)$ by definition, so $q(u_E) = \pi^*(e(E))$.
[/guided]
[/step]
[step:Conclude the identity $u_E \smile u_E = \Phi(e(E))$]
Combining the two preceding steps:
\begin{align*}
u_E \smile u_E = q(u_E) \smile u_E = \pi^*(e(E)) \smile u_E = \Phi(e(E)),
\end{align*}
where $\Phi: H^i(X; R) \to H^{i+d}(E, E^\#; R)$ is the Thom isomorphism $\Phi(c) = \pi^*(c) \smile u_E$. This completes the proof.
[/step]