Here is a simple proof that every function is the sum of two surjective functions.
Let $f: \mathbb R \to \mathbb R$ be any function.
Let $O,E$ be the set of real numbers whose first digit after period is odd or even, respectively, that is
$$
O=\{ m.a_1a_2 \ldots a_n \ldots | a_1 \mbox{ is odd } \} \\
E=\{ m.a_1a_2 \ldots a_n \ldots | a_1 \mbox{ is even } \} \\
$$
Then, the functions $h:O \to \mathbb R, g : E \to \mathbb R$
$$
h( m.a_1a_2 \ldots a_n \ldots)= m.a_2 \ldots a_n \ldots \\
g( m.a_1a_2 \ldots a_n \ldots)= m.a_2 \ldots a_n \ldots \\
$$
which erase the first digit after the dot are onto.
Extend them via
$$
f=g+h \,.
$$
Simplification I realised that the argument is much more complicated than it needs be:
Pick any onto functions $g:[0, \infty) \to \mathbb R$ and $h: (-\infty, 0) \to \mathbb R$. Define
$$
g(x)= f(x)-h(x) \qquad \forall x < 0\\
h(x)= f(x)-g(x) \qquad \forall x \geq 0\\
$$
Note: A more complicated version of this proof shows thatIt is actually possible to show any function $f$ can be written as $f=g+h$, where $g,h$ are surjective and satisfy the Intermediate Value Property. This can be done via the standard argument that each function on $\mathbb R$ can be written as the sum of two functions with the IVP.