Well, since I don't know very many details - what is making bedtime a battle? And since it has been a struggle since birth, I will recommend what I recommend to all on here who question their child's sleep habits. Get the book "Healthy Sleep Habits, Happy Child" by Marc Weissbluth, MD and follow his tips consistently. I consider this book my parenting bible!! :-)
In regards to getting him to stay in his room, it is simply creating consistency. If he gets up, the first time, you say "It is time for bed." take him by the hand and walk him back to bed. Every time he gets up after that, you pay as little attention as you can, take him by the hand, and walk him back to bed. Or sit in his room with him. If he gets out of bed, get up and put him back in bed. Don't pay any attention to him (no looking, no eye contact, no talking, etc.) other than to put him back where he is supposed to be. It is HARD...but eventually he will get the picture and will learn that bedtime means bedtime! The more attention you give his getting up, the more he will continue to do it.
Make sure you have a calming routine before bed...whether that is a bath, and books, but make sure there is no rough play or stimulating TV after a certain point in the evening.
The book I mentioned gives some good information regarding the importance of sleep and some common misconceptions regarding sleep - like if a child is really tired, they will sleep longer...in fact, the opposite is true. The more overtired a child is, the more difficult it can be to get them to sleep. So making sure your child has enough sleep, enough naps, is important to them being able to sleep at night! I HIGHLY recommend it!!! Good luck!!