I think the clear answer is to get him in his own bed all night long. My 3 year old is a BEAST when he sleeps with us (for example on vacation when he has no separate sleeping area). He tosses and turns and is completely restless. However, when he's in his own toddler bed, he sleeps wonderfully and peacefully.
You are probably just going to have to put in the time to let him cry it out for a few days or a week until he realizes that you aren't going to bring him in your room, and that is bedroom is where he sleeps.
Like a previous poster said, make it exciting! Transition him to a big boy bed and let him pick the sheets, etc. Give him some special toys or blankets. And then stick to your guns about keeping him in his bed!
Good luck :)
K