Dr. Greene's Answer
That can be a tough age for sleeping. If you want to teach kids to stay in their own rooms, there are several steps involved.
You want to make his room comfortable for him and make sure he has a bed that’s the right size (bunk beds, for example, are best reserved for older kids). Sometimes glow-in-the-dark stars on the ceiling can also make a room more comfortable. Try giving him something to listen to during the night, such as a cassette tape or CD of good stories (I like Jim Weiss’ stories. I’ve used them for years) or quiet music (there’s a reason that lullabies have developed in almost every culture) or perhaps even your own voice reading stories. The first few times kids listen to something new, it might keep them awake for a bit, but pretty soon the story is just interesting enough to keep them from getting bored or scared, and just familiar enough to let them drift off peacefully.
Another thing that might help is getting your child drowsy before bed with warm milk, a warm bath, or a consistent bedtime routine.
I’m a big fan of giving kids a card that is a free pass for one trip out of their room each night after bedtime. It must be a short trip–a hug, a glass of water, or just a chance to see you–and when they have surrendered their card, if they come to you again that night, they are walked back without a word and without eye contact. This knowledge that they can see their parents if they need to and will be warmly greeted helps kids to relax. After trying out the card for several nights, most kids will hold on to it (in case they need it later) and fall asleep.