Okay, so what is happening is he is needing his day sleep, shifting it to the late afternoon and early evenings which is disrupting his bed time.
First thing, clear your schedule for 2 weeks. Make life simple as possible for you. If you want this to change, then you have to commit time and effort.
Make sure his day begins by 7 am... if he sleep in, then wake up him. You want to shift his schedule back to a reasonable and age appropriate daily routine.
Generally naps for a late toddler/early preschooler, is between 12:30-2:30. Make sure his environment is conducive to sleep.. dark, calming, low stimulation. Have a set naptime ritual-- change diaper, read a book, night night and then give him time to settle on his own. If he doesn't know how to fall asleep independently, then you will need to teach him how. I recommend going through Tracy's toddler book or new book. Both have excellent strategies for teaching independent sleep.
If he doesn't fall asleep by the end of his naptime (between 2:30-3:00) initiate a "wake up" ritual. "Okay nap time is all done" open his blinds etc. Keep it easy going and happy. Whatever you do.. do not resort back to driving him around. You know that he will fall asleep.. and that will throw off his body clock.
Make bedtime between 6:30-7:30 (depending on his afternoon nap, but no later than 7:30) That is in bed by a specific time. Have a predictable bedtime routine, again if he needs to learn how to fall asleep independently, then use your strategies for this.
Ultimately, the key to this working is your consistency, your predictability and your willingness to make changes and to help him get back on track. It won't be easy in the beginning.. I'll be honest with you.. but if you stick it out and keep your eye on the end result.. then it will work out. Your role is to set limits and to guide him onto a daily routine.
Hope this helps,