L.R.
You already know the answer. Cause and effect: He naps and then he's up far too late. Either shorten the naps or eliminate them. Many kids start giving up naps altogether between ages two and three -- it's normal.
If, at night, he is overly tired and fussy and hard to get to bed on days he does NOT nap, then he does still need a nap but a shorter one; experiment with holding him to a one-hour nap at most and waking him at the end of that time, whether he likes it or not. (My daughter was ready to stop napping at two, but we did "car naps" of about an hour each day until she was about three, because she still needed that sleep in order not to be overly tired and cranky prior to bedtime.) Try shortening his naps; you will pay for it at first with crankiness when he gets up so have a snack ready to distract him when you wake him after naps.
I'm guessing you're hesitant to drop the nap completely because it gives you down time and time to get things done during the day. I totally understand -- I've been there. But a child his age shouldn't be up until 10 or 11 at night (and when he is, don't let him sleep in until 9 or whenever he gets up--wake him).
He needs a regular schedule, so whether you choose to keep a shorter nap or choose to drop the nap, have a very regular naptime with a definite end, a regular bedtime and consistent wake-up time. Get him into a rhythm and his body eventually will get used to that.
By the way, things may be different in your area, but around here, no public kindergarten has kids taking a nap in school or doing any kind of required lying-down rest time (and that's in full-day K). I don't think you need to force him to keep napping now just so he'll be able to nap in kindergarten in three years' time.