Lots of good advice (and some shitty advice, but I think that has been clearly identified at this point) in this thread. I would only add that with kids in this age group, I think it is critical to make sure that you are withholding attention for negative behavior (as much as possible) and giving attention for positive behavior. Kids love attention and they will try to get it from you any way they can.
So, for example, if your kid throws a block or something, you take the block away and you tell the child that he has to go on time-out for two minutes. You set a timer. You put the child in a time-out area where he is not getting attention from you. If you have to keep an eye on him to make sure he stays put, then read a book or something, as raspberry hunter suggested. It is really important not to give the child attention during this time, no matter how much they scream, yell, try to negotiate, etc. If they try to leave the time-out area, just calmly get up and put them back, then leave/go back to reading.
The idea is to teach the child that negative behavior will result in loss of attention, not more attention.
I went to a parenting class targeted at teaching parents how to deal with high-tempered or oppositional children – I was kind of mis-sorted into this class, because my kid had autism and wasn’t really hugely oppositional or defiant, but I learned a lot from the class anyway. One thing they suggested that I found to be very helpful, but not intuitive at all, is that after the timeout is over, just tell the child, 'Yay! Timeout is over!" and give them a hug and send them on their way. Don’t lecture them about why they were in timeout or say “Now, make sure not to throw the block again!” or anything like that. Timeout is over, the kid is calm (hopefully), just move on. If you bring up the original misbehavior, a lot of times a small child will just start to melt down again, remember what happened and how they felt when they had to go into timeout, etc.
The other important half is to give positive attention for good behavior. So if your kid is prone to throwing stuff when he’s angry, then sometime when he is angry but doesn’t throw a block (better yet, if you see him start to pick up a block to throw, but think better of it and put it down) then praise him to high heavens for it. When I was a new parent, I subscribed to the idea that you shouldn’t over-praise children. I no longer think that way. Praise is one of the most effective tools you have as a parent. Don’t praise for everything under the sun; but do praise for specific things your child does that you are trying to encourage. Even if you think, “This is stupid to praise my child for this; it’s something he should just do without needing praise for it” - tough. If it’s something they’re struggling with, or a behavior that you’re trying to change, then you praise them every time you see them do what you want them to.
And also of course model the behavior that you want to see. I’m sure you’re not throwing blocks at each other in your house, and this may not even be relevant to your situation, but a lot of times kids will mimic the way that they see their parents handle frustration or anger. When I learned to take a deep breath and walk out of the room instead of just blowing up and screaming when my kids did something upsetting, it wasn’t long before I saw my oldest son start to react to frustrations by taking a big deep breath. Kids watch everything you do.
OK, this was sort of a longer post than I meant to type, but maybe some of it is helpful. Good luck, OP. You sound like a good parent.