Start keeping him up until 10 or later. His biorhythms will take about a month to change. It doesn't happen in a couple of weeks, sometimes it takes a month or two. This is why so many people that work shift work where they switch every couple of months are always tired and they cut off their life expectancy by 10-15 years by working that shift...
Give him time. Also, he's old enough to be in his room with the door shut. Tell him he has to stay in his room, period. If he comes out he gets in trouble. Of course that can backfire on you if he needs you for something, like he's puked, and he's afraid to come tell you because it's too early.
It truly sounds like he has you trained to his wants. He wants to go to bed at 7:30, he wants to get up at 3am, he wants to take a nap at 10:30am. he wants to take another nap in the late afternoon too I'd guess. He gets to sleep when he's sleepy.
This is a normal schedule for kids in child care or pre-school. Kids take naps/lay down for quiet time until they come back from Christmas Break in Kindergarten...so he needs to get this sleep pattern fixed like you are wanting.
Get up 7(ish). Eat breakfast and get ready to leave or get ready to leave and eat at the school.
8-11 do stuff, pre-school curriculum, child care daily schedule, play or go to library reading time, have a LIGHT morning snack...go out of the house and stay busy.
11:15 (ish) clean up and get ready for lunch. Have lunch. Wash hands but kiddo goes to bed quickly so the activity of cleaning up doesn't wake his body up.
Noon, be completely done with lunch and be laying down for nap.
Sleep until about 2:30/3pm.
Get up, have snack, play/do chores/get ready for dinner.
5-7 dinner, family activities, go do stuff like a park or game.
8pm, have an evening snack, bath, ready for bed but doing quieter things like reading, talking, watching TV (Puts my kids to sleep), etc....asleep by 8:30/9pm
by 10pm for your little guy he'd need to be asleep so he'll sleep later in the morning.
You can do this, you just have to decide you're his boss and YOU can decide, to some extent, what his schedule is and that he will comply. His body will eventually get used to his schedule and he'll start to get sleepy on cue, when you sit down with him and put him beside you in a snuggle, his eyes will get droopy and he'll fall asleep. When he wakes up he'll see the time of day and remember to let mom sleep.
He's waking you up because you give him good attention when he does this. You snuggle him or talk to him or get up to start your day. If you could ignore him (I know this is impossible) he'd get tired of trying to wake you up and stop it. So the next best thing is to get him doing something else. You can do it.