The heat of re-entry is highly dependent on speed. The second stage of the rocket is responsible for providing most of the speed needed for orbit, after the first stage lifts it out of dense atmosphere.
Falcon 9 separates its first and second stages at relatively low speed, so its reentry starts off drastically slower than a reentry from orbit -- about 1650 m/s for the return-to-launch-site flight in December 2015, compared to orbital speed of 7700 m/s. Stage separation can be quite a bit faster in their downrange, barge landing flights, but the first stage is still moving much slower than orbital velocity.
That's still up around Mach 5 or 6, though, which will still produce a lot of heat. So the rocket fires three of its engines to slow down further before entering the thicker part of the atmosphere. The exhaust plume from that burn, as well, forces the atmospheric compression that creates reentry heat to occur well away from the rocket.
The end result is that the heat load is light enough that the body of the rocket can survive it.
There's a protective shell on the underside of the rocket, rather than a heavyweight ablative heat shield. The engine bells themselves are bearing the brunt of what reentry heat there is, and they are obviously able to cope with very high temperatures.