$f$ is even.
Fix $y=0$, we get $$x^2f(x) = f\big(x^2+f(0)\big).$$ When $x\neq 0$, we have $f(x) = f(-x)$.
$f$ is non-trivial and injective for $x>0$.
Notice by OP's argument, we have $f(0)= 0$, hence
$$f(x^2) = x^2f(x). \tag{1}$$
Suppose for some $a>0, c>0$, $f(a+c) = f(a)$:
$$
0 = f\big(a^2 + f(a)\big) = f\big(a^2 + f(a+c)\big) = c^2 f(2a+c).
$$
So we produced another point $x= 2a+c$ so that $f(x)=0$, by (1), $f(\sqrt{2a+c}) = 0$ as well, repeat this process and taking the limit because $f$ is continuous, we reach the conclusion that $f(1) = 0$. Now let $x+y=1$,
$$
f\big(x^2 + f(1-x)\big) = 0.
$$
Because of the continuity, we produced a neighborhood of points $f=0$, unless $f(1-x) + x^2$ is $\pm 1$ or $0$ which doesn't fit. Repeat this argument we will find that $f=0$, contradiction.
$f(x) = -x^2$ or $f(x) \equiv 0$.
$f$ being possible to be zero follows from the second part. Now assume $f$ is injective for $x>0$: Let $y = x+1$:
$$f\big(x^2+f(x+1)\big) = f(2x+1).$$
Hence
$$x^2+f(x+1) = 2x+1, \;\text{ or } \;x^2+f(x+1) = -2x-1.$$
Upon checking, first one doesn't fit, second one leads to $f(x) = -x^2$.