We have had a similar problem with our DS who is almost 4 until about 3 months ago when I was having another one of my "THERE IS SOMETHING WRONG WITH THAT CHILD" tanties to hubby who refuses to admit that anything less than perfect could come from him
His behaviour was very challenging, and when I had been consistant for so long, and recieved consistant tantrums, I was fed up. DH did an internet search and found that a high% of childrens sleeping disorders can be solved by removing the tv 4 hours before bed. We did this and that VERY night he went to sleep half an hour after he went to bed which was a huge change from the 4 or 5 hours it took him previously.
While we had the typical suggested bedtime routine, bath story bed we added about 20 minutes where he would look at books by himself - so we read him a story he looked at books then he lay in his bed for his second story before we said good night.
While it was hard at first not to put the tv on while cooking dinner (which was the only time he watched it before as we are anti tv) I gave him play dough or other activites to do...sticking those circle stickers onto paper even, and he is now a different child it was so worthwhile for us.