Always keep your guard up (hold RMB if you're on PC). You should be dodging when you see your opponent winding up with all his punches. When he used a strong attack, use the change to get a few quick jabs in. Remember you can also counter and also have Strong Attacks of your own.
What I typically do is keep my distance, wait for someone to come and attack, get ready with the counter button, and when someone punches I quickly tap the counter. Then right after throw usually three punches though you can sometimes land even four in a row before the guy blocks again.
Always try to step back if there's a group and only face one person at a time. If you can, using signs really helps.
Hitting three times on a strong opponent will usually get you stunned, so do like Ravi said and punch twice (normal attacks). If you want to try it, sometimes running at a guy and slamming him repeatedly with power attacks keeps him stunned for long enough to do serious damage (get a running start). I took down a huge <something> using that strategy when I was dying using my normal safe strategy because getting hit once or twice was too much damage with that fella, so I went for it. Remember you can dodge and you can roll. Use both. Dodge-punch-roll... roll gets you a lot more distance, so use dodge if you want to keep attacking and roll if you need to recover or avoid.
Footwork! Keep your hands up! No!! All wrong! Pirouette!!
Practice on easy opponents, like stray dogs and homeless people (i.e. bandits).
uh....wrong wrong wrong! im on death march, when i fist fight 3 people at a time, best strategy is to ONLY BLOCK as soon as he is about ti hit you,lay 2-3 strong hits, when you see you are not doing any more damage back away and let him come at you,then rince and repeat
Worst thing you can do is try to rush a fist fight.
If you spam them with LMBs, you're going to get countered, you get countered you're going to take a punch and as you've seen Geralt has a very weak jaw.
Work out timing your counters, if you get that down I assure you most fist fights you should breeze through (with the exception of Novigrad's aggressive and quick champion and Skelliges peculiar champions).
Keep blocking, Patience and countering practice is how I would recommend you fist fight. Ice Hockey rules here just get you KO'd and 50 crowns poorer.
Timing counter attacks is more advanced. Get comfortable fighting the safer way of blocking most of the time, and if you get that down then you can try for advanced strategies. A lot of people aren't coordinated enough to catch every attack in time, myself included, so you need more practice and a lot of focus to get to that point.
Parry riposte, you don't need to keep guard up, just learn the timings. Learning these was horrible, had to unlearn everything Dark Souls taught me, you have to parry as they start their strong attack. Basically a second before the attack will actually hit you. if I went back to Dark Souls now, I'd be eaten alive.
Also don't walk, run or roll. Just use the sidestep/dodge thing for all your movement, back off and always make them come to you.
How the hell do you do it? I keep getting my ass kicked, blocking doesn't work, counter attacking doesn't work either and the hit detection is way off. I dodge out of the way and still get smacked, wtf?
My opponents seem to be blocking 24/7 so whenever I try to hit them I just hit them for 0 damage and they sooner or later counter attack and smack, another 25% of my health is gone.
Your only opening is to hit right after you dodge opponent's attack or counter it , and most important, don't rush, because that's basically your only opening to hit back. Better take a distance for safety measure if you sense any danger and work your timing again. The countering is very forgiving though, it doesn't have to be the exact moment.