I'm sure you already appreciate that you really need to get to grips with this and fast. A 5 year old hitting is one thing, but if you don't stop it effectively now you'll be heading for all sorts of problems as he gets bigger.
You asked what you can do to prevent the tantrums. It really helps to make sure they are comfortable - not tired, hungry or thirsty, not wearing clothes that itch or make them too hot or cold. I found tantrums usually had a secondary cause. Also, for DS1 who had very fixed ideas about what he would and wouldn't do, I found it helped massively to explain in detail beforehand, what a plan was. When situations come along that you can't foresee 9like him starting a tantrum over which direction you go0 the magic trick I learned was to agree with them.
E.g. Oh, wow, you really want to go this way don't you. Why's that? (Then you have to listen to the answer.) If you can compromise on his reason at all, do. If not, let him win face by asking his opinion (but not letting him make the decision) so you end up saying, ' DD isn't as grown up as you yet on her scooter so it just won't be safe to go that way. When do you think she might be old enough? Or, why do you think this way is safer? Doesn't always work, but if you sound like you are truly seeking his opinion, not just trying to control him, it might do the trick.
I'd forgotten how tactical you have to be when they're that age.
It's hormones. I would make sure you exercise him lots . Literally - get him to do laps round the park. Also grab any opportunity you get for him to interact with positive authoritative make role models (football lessons, cubs, swimming lessons, visits to Grandpa etc). Afirm his masculinity but channel it into something positive. Hitting mum is not what real men do - and when he clocks that he'll move on to beating his brother more acceptable displays of aggression, competitiveness and assertiveness.
He sounds old enough and clever enough for a proper discussion about it.
On the few occasions DS1 hurt me, I got down to his level, face close to his and said very firmly: you are NOT allowed to hurt me. I don't hurt you and you are not EVER allowed to hurt me. Is that clear? And stayed there looking absolutely terrifyingly furious at him until he answered the question. Then I'd ask: why aren't you allowed to hurt me? and again, we went absolutely nowhere until he could answer. I think they can hear in your tone of voice whether or not you mean what you say and whether you're in charge or feeling out of control.
This was instead of punishment. Having endless sanctions can get too confusing and just turns into a battle of wills. Also, you lose out too, if you end up going home when you wanted to go out and about. So IMHO just deal with the situation for what it is: hitting, which hurts and makes you sad and cross, rather than complicating it with extra punishments.
I completely understand why you slapped his leg when he hurt you - it's an instinctive, protective reaction. But it makes it hard for you to then explain that hurting people is wrong, so it's probably best not to hit him again if you want him to stop too, and to have a plan ready as to how you will react instead.
He is 5y 9m, Y1. He has been hitting me and DH since about a month before reception, so 18 months.
I will give you the two examples from today...
We went out (me, DS and DD 3) to town and the library. Two minutes from our door, he wants to go a different route to town. I said No, not that way this way, as that way has more traffic and DD is on her scooter etc. He sat on the floor and SCREAMED. He then stood up and charged at me with his scooter and hit me in the legs. I folded up his scooter and put it on the buggy. I said right you walk nicely or we go home. He stormed at me again and punched me in the stomach. I smacked his leg. After a few seconds of harumphing and screaming he said he would walk. He carried on shouting for a few seconds behind me. I said right lets go home. Screamed all the way home.
Incident 2. We were going to bed. I put his CD on. I said Oh shall we put another one this is a bit boring as we have had it every night. Then I said Oh know cant the CD's are in DD's room. He screamed, please go and get them etc etc. I said No and explained why. I said roll over and Ill give you a tickle. He screamed. I said right ill count to 3 and if you are not rolled over, no tickle. So I counted and then walked. He charged at me again down the corridor, with a contorted angry face and punched me in the stomach. If I had been pregnant I would have had to get a scan. Ran back to bedroom and screamed. DH had a chat and said totally unacceptable etc etc.
For the rest of the day he was happy. Fun, listened (mostly), played on his own for bits etc.
Please note we at the end of our teather with this. I have not smacked either of them until 1 month ago, when I started hitting him when he hit me. I literally have run out of ideas.
He is big for his age and strong.
He is doing v well at School. No problems at all. Very popular, reading writing etc is great. Teacher says he is gentle.
He has never hit anyone except me and DH.
We cannot predict what he will go mad at and what he won't. On ten other occasions he will not mind me saying No we cannot take that route.
We have tried numerous things. I have stopped him going to parties, playdates, treats etc. Going to room, naughty step, reward charts etc. I play with him alot, he gets masses of one to one time with both of us. His diet is good and he sleeps well.
DD is fine, never had any problems with her behaviour that is not v normal.
DH thinks we give too many chances too often. I feel I am quite good with this, but could do better sometimes. The above examples are exactly what happened today, say it, warning, do it.
What can I do to stop the hitting/tantrums before they happen and if they do, during? I am exhausted by him.