A lot of it is just the age. And I can't offer any advice on "breaking the habits", other than being very consistent with whatever you do. You're not going to break his habits, HE is, when he's ready to do so. My four year old daughter was a nightmare during most of her Age 3 year. She absolutely had to be the winner in everything, even stuff that wasn't really a game. She wouldn't listen, had to be in charge of every aspect of the world around her, including her parents. We had to leave restaurants a couple of times because she wouldn't be good. I pulled her out of a grocery store once, and made it very clear, right in her face that it wasn't okay to do what she was doing. Not a happy memory, with her screaming and aghast shoppers gawking. One thing that was marginally effective was to tell her that I wasn't going to talk to her until she talked nicely. I think what she really wanted was a reaction from me, and I wasn't going to give her one. We did try to keep her on a very consistent routine, with bed time at 7:00-7:30 every night. And that meant us missing out on a lot of stuff that would have been fun for us. And we had to show her consistency with our own behavior, as my wife and I don't yell at each other. And when your son gets better, it isn't going to happen overnight. But eventually he will.