I woudl say your Ds has too late and too long a nap and goes to bed far too late. Between 2 and 3yrs they need about 12 hours in total, usually 10-11 at night and 1-2 as a nap.
Do you have a good bedtime routine? the first thing i'd suggest is make sure you have a nice relaxing bedtime routine and one that doesn't involve you staying with him til he falls asleep.
Once you have a good bedtime routine then you need to move it back, statrt at 10.30pm (a beditme routine including bath will take about half an hour)
then every two nights move it back 30 mintues, so 10.30pm, then 10pm. Once you have got back to 7.30pm for an 8 o clock going to sleep you should be fine.
I make sure the afternoon nap is slightly earlier if you can, say 2-3pm.
a few questions:
where does your DS normally sleep for naps?
what do you do to get him to go to sleep?
do you wake him up from naps?
when you said you struggled to put him to bed earlier - what did he do and how long did you try for? if you change his routine suddenly he will protest, thats why I'd suggest moving it back gradually.
Get that bedtime routien sorted first though and give it a week to make sure he's used to it before you do any other changes.
That way he starts to know the 'bedtime' signals. My DS hates going to sleep but he does know about bedtime (18mo) and even if he is protesting a bit when i leave the room at 7pm(ish) he is asleep within 15 minutes.