My 2.5 years old is miserable, help!

My 2.5 years old recently decided he doesn't want to nap anymore. He used to nap 2-3 hours during the day, still went to bed at nine without any problems and woke up by eight in the morning. Now he's refusing naps, sometimes accidentally falls asleep (I try really hard to keep him up) in the early evening and/or cry for hours until bedtime (won't go asleep before) and putting him to bed takes more than two hours with constant crying. My heart breaks for him. He's so exhausted and I don't know what to do. Help!