Sea $B : V \times V \to V$ cualquier forma bilineal no degenerada en un espacio vectorial real $V$. Afirmamos que si $f : V \to V$ preserva $B$ (en el sentido de que $B(fu, fv) = B(u,v)$ para todo $u,v \in V$) y satisface $f(0) = 0$, entonces $f$ es lineal (de hecho, un isomorfismo lineal).
Primero establezcamos una forma débil de linealidad. Sean $u,v,w \in V$ y $\lambda, \mu \in \mathbb{R}$, entonces calculamos
$$ \begin{align}B(fu, \lambda fv + \mu fw) &= \lambda B(fu,fv) + \mu B(fu, fw) \\ &= \lambda B(u,v) + \mu B(u, w) = B(u, \lambda v + \mu w) \\ &= B(fu, f(\lambda v + \mu w)) .\end{align}$$
Si supiéramos que $f$ es sobreyectiva, la linealidad de $f$ seguiría de la no degeneración de $B$, ya que $fu$ podría ser cualquier elemento en $V$. Sin embargo, aquí realmente no necesitamos que $fu$ se elija arbitrariamente en $V, sino solo en una base de $V$. De hecho, si $span\{v_1, \dots, v_n\} = V$, entonces la no degeneración de $B$ implica que $B(u,v_i) = 0$ para todo $1 \le i \le n$ si y solo si $u = 0$.
Así que necesitamos finalmente demostrar que $\mathrm{Im} f$ contiene una base para $V$. Esto se sigue de la existencia de bases "estándar" en $V$ con respecto a $B$ (Si $B$ fuera un producto escalar, "estándar" podría significar "ortonormal" ; Si $B$ fuera una forma simpléctica, "estándar" podría significar "simpléctica".) De hecho, dado que $f$ preserva $B$, transforma una base "estándar" en otra.
Observa que el teorema de Mazur-Ulam tiene una forma más fuerte que la que mencionaste : Si $(V, \| \cdot \|)$ es un espacio vectorial real normado y si $f : V \to V$ es un mapa que conserva la norma y satisface $f(0)=0$, entonces es un mapa lineal. En este contexto más general, no se tiene la estructura bilineal de un producto escalar de la cual se podría inferir la linealidad de $f$.