I also suffered bad tantrums with DS(4) and still do occasionally. With the chocolate thing, I used to say he could have some AFTER he'd had his meal, but only if he'd eaten most of what was on his plate.
Another art I've learnt is distraction. We had a pretend hedgehog and rabbit in our garden and it was amazing how I used to peer out of the patio doors, pretending to see them saying, ooh look, Mrs Hedgehog is crawling under the fence, Quick, come and see. If he came running up I'd say oh, she's just gone, You must have frightened her off with your screaming but lets keep a look out til next time she comes, etc,etc.
Another tip is get some headphones and when the screaming and shouting starts, just say, 'you're not listening to that rubbish, it's hurting your ears'. Then put your headphones on. If they still carry on, lift off one of the ears and say 'what was that? I can't hear you I've got my headphones on.' Of course it makes no difference at all, but they think you can't hear and soon realise it's a lost cause.
I also say 'well, if you're going to scream like that, I'm going back to bed until you've calmed down' Which also works in your favour if you're a bit tired. (helps if you have a tv in your room in case it's a long one!!)
We always discuss the behaviour quite soon afterwards and have a kiss and cuddle etc to make up. But he knows he can have a kiss and cuddle anytime and quite often will just throw himself at me. But it's quite nice just to say sorry to each other. I also have told him I do not like that sort of behaviour and it makes me really really sad inside.
It was the best part of my life for a good 12 months (sorry!!) and we still endure them occassionally now, but with picking one of the options above he knows he aint going to win with screaming and shouting (sometimes banging his head on the floor) But if you speak nicely you might just get what you want.
Huge sympathies