T.H.
I say keep doing what you are doing but on days he doesn't nap put him to bed between 30-60 minutes earlier. My son just turned 3 but for about 3 months hasn't been napping either :( even though he really needs it too. So when he doesn't nap, which is mostly every day, I put him to bed between 7-7:30 and he sleeps like a champ and doesn't wake up earlier than 7. If he really is tired he'll still sleep to the same time and be fine.