I feel your pain. We have been going through the same thing with our 4 year old off and on since we moved him to a "big boy bed" at 2 1/2. There are a couple of things that I found worked at times, although we are still battling to keep him in his bed all night. If you're like me, you want to avoid forming a habit of sleeping in bed with you. Our alternative: I made up a bed out of blankets on the floor by my bed. We he got up at night, he knew that his "other" bed was made for him. He would crawl under the blankets and go back to sleep. It worked for a while. I don't know what happened, but he has since started to fight to get back in our bed again.
So the other thing that I'm finding that is working, is the reward method. I just started this last week. I told him that if he would stay in his bed all night for a week, we would go to the toy store a get the lego toy he has been wanting. It has worked, and we have gotten a full week's night of peaceful sleep. I wonder if I should've done it for a longer time period. We'll see. Good Luck and I hope you find more complete success.