Consider g(x) = f(x) - x.
Note that f is continuous, then g is continuous too.
f(x) = x has no real root, that is, g(x) = 0 has no real root.
g is continuous, that means (Case 1) g(x) always >0 or (Case 2) g(x) always <0.
Therefore, f(x) always >x or f(x) always < x.
This means, f(y)>y for all y or f(y)<y for all y.
Now, put y = f(x) for both cases.
Case 1:
f(f(x))>f(x) for all f(x) with f(x) always >x
Therefore, f(f(x))>f(x)>x for all x.
That is, f(f(x)) is NOT equal to x for all x.
Case 2:
f(f(x))<f(x) for all f(x) with f(x) always <x
Therefore, f(f(x))<f(x)<x for all x.
That is, f(f(x)) is NOT equal to x for all x.
Combining, f(f(x)) can never be x.
That is, f(f(x))=x has no real roots.