I haven't read other responses. My first reaction is to suggest that you put him to bed, when he gets up put him back in bed, etc. without talking after the first time in. Remain calm and consistent, Do only this for several nights.
Do not get side lined by his temper tantrum. Once he starts a tantrum, leave the room and perhaps shut the door. Most definitely do not pay any attention to him. Never respond to a change, a drink, or any other bid for attention.
I suspect he's found that this is a way for him to continue keeping you involved with him. If you've responded by letting him have what he wants even just a couple of times, he has to continue doing this in hopes that you'll give in again. It's extremely important to decide on a plan of action and keep to it.
I would never bargain or even punish. My feeling is that a matter of fact, it is bedtime and you will remain in your room is what is required. The consequence is that you continue to put him back in bed or back in his room.
If this doesn't help the situation after a week or so, I'd consider that there may be an issue underlying it. But if he's "normal" in all other ways and his extreme tantrums mostly occur at bedtime I suggest that the cause is a need for a simple and consistent response from you and your husband.
Your son can sense your uncertainty about whether or not this is normal. You have to present a calm, confident approach as a couple even if you don't feel that way.
My grandson had tantrums at that age that were influenced by the underlying meaning of his not being able to speak so that others could understand him. He was diagnosed with Oppositional Defiant Disorder and recently with ADHD. The ODD decreased dramatically when his mother learned more consistent ways of managing him. He also has symptoms of being somewhere in the autistic spectrum. If your son is "normal" in other ways the temper tantrums are most likely also "normal" and are his attempt to find where his boundary concerning bed time lies.
Talk with him earlier in the day and tell him what you plan to do. Tell him his tantrums are not acceptable and that you are going to ignore him when he is being disrespectful and/or having a tantrum. Tell him you are going to leave the room but that you'll be nearby. Tell him that if he leaves his room, you will put him back into the room and shut the door. Tell him what the consequences will be, whether they are the ones I suggest or others. Then follow thru. He will test them and it sounds like he may escalate his behavior even more. I see his extreme tantrum as an escalation most likely because you haven't been able to be consistent with one technique for a week or more.
Both of my grandchildren had tantrums but not of this magnitude. For them, they calmed down easier if I stayed in the room but away from them and completely ignored them. I usually sat on the floor with my back against the wall and looked at a magazine or stared off into space with a ho hum attitude.
However, you may not want to stay in the room with him because it's likely that being with him causes him to continue to work at getting your attention. I'd try leaving the door open and a light on, either in the hall or a night light so that he doesn't feel abandoned. It's very important to not interact with him, whatever you do. If necessary shut the door. Or you could try a gate.
What time are you putting him to bed? Could he be overly tired? I'm assuming that you have a consistent bed time routine that helps him to wind down before he actually has to get into bed. My daughter had difficulty for awhile when her children were preschoolers in that she would tell them to get their pjs on and then tell them to go to bed without actually being involved with them. Kids need a routine with their parents so that they will know what to expect and have soothing time with a parent. Some kids need more of a definite routine than others but all need some sort of routine.