By plugging in $x=0$, we see that
$$f(f(y)+f(0)^2)=y,$$
so $f$ is surjective (as $y$ can be any real), injective (as we may find $y$ from $f(y)$), and thus bijective. In addition, letting $x$ be so that $f(x)=0$, we see that
$$f(f(y))=y.$$
Now plug in $x=f(t)$ to see
$$f(f(f(t))^2+f(y))=f(t)f(f(t))+y$$
$$f(t^2+f(y))=tf(t)+y=f(f(t)^2+f(y)).$$
Now, as $f$ is injective, we may apply $f^{-1}$ to both sides to see
$$t^2+f(y) = f(t)^2+f(y) \implies f(t)\in\{-t,t\}.$$
It is easily seen that $f(x)=x$ for all real $x$ and $f(x)=-x$ for all real $x$ are solutions; we now show that they are the only ones. Assume for the sake of contradiction that for some real $x\neq 0$, $f(x)=x$, and for some real $y\neq 0$, $f(y)=-y$. Then
$$f(f(x)^2+f(y))=xf(x)+y \implies f(x^2-y)=x^2+y.$$
This means that $x^2-y=x^2+y$ or $y-x^2=y+x^2$, the first of which implies that $y=0$ and the second of which implies that $x=0$, each a contradiction, finishing the proof.
Note that this doesn't use continuity at all -- so these are the only solutions regardless of whether $f$ is required to be continuous.