Have also posted this is chat but posting here too for responses.
4yo DS is normally very easy going, a bit boisterous but still manageable.
We have a bedtime routine that's been there since he was a baby. Wash, teeth, pyjamas, story, bed. Usually he goes to bed with no problem and sometime around 4am gets into our bed, we don't mind this as he doesn't normally disturb us and goes straight back off to sleep, our opinion is that he'll outgrow this in his own time.
Over the last week he has suddenly gotten very aggressive. A few nights ago I wasn't well and he came through to our bed around midnight. I explained I was feeling poorly, hadn't been to sleep yet and that it was too early to get into our bed so took him back to his bed. He massively kicked off. Shrieking, angry screaming, kicking doors and walls, screeching "no" over and over, kicking and slapping me and his dad, sobbing, the whole works. And he kept it up for three hours, nothing calmed him, ignoring him didn't work, letting him in the bed didn't work, soothing didn't work. On and on he went, he even woke the neighbours baby up.
Next morning we explained why his behaviour was not acceptable. DH took his favourite toy away for the day and no trip to soft play. He was really well behaved all morning, exceptionally so. That afternoon I took him to the shops with me and when we got back to the car he did it again, this time because he didn't want to get in his car seat, shouting at me "I don't want to" over and over in an aggressive tone. I sat in the front seat and let him wind himself down. When he eventually did I fastened him in which started him going again. I got him fastened but he hit me in the side of the head and face, screeching at me, while I did it. When we got home I had a talk with him, took away his next favourite toy and told him no TV (he wanted to watch the dinosaurs on Cbeebies).
Tonight at bedtime he started it again. Screaming, shouting, and the hitting. He kept screeching "I'm not tired" (he was) and "no" and "I don't want to", kicking the walls and doors again. He has a torch that he takes to bed which he threw at me, he also punched me in the side of the head, kicked me several times in the stomach, slapped and nipped my arms hard enough to bruise and tried to bite the side of my face. I tried walking away and he just followed me, hitting me the whole way.
I'm really ashamed to say but I ended up shouting back at him to get into his bed and stay there, then I smacked his bottom I didn't do it hard, three quick taps, but we don't smack and he sobbed his heart out over it. As soon as he was done sobbing though he went back to shrieking and screaming. DH was home by then so went up to calm him down while I sat down here (and cried).
DH sent him down to say sorry to me and to say goodnight. As soon as DS saw me he started crying and kept asking if I still love him. I reassured him that I do but that he can't act the way he was acting. He was really sorry and was my sweet boy again, he's always sorry afterwards but then next day he does it all over again.
I don't know why he's suddenly acting like something from The Exorcist or what to do about it. I feel like shit for smacking him and even more like shit because I don't know what's wrong with him or how to fix it.
Any advice would be appreciated.