At the start of the race, Mazepin went side-by-side with polesitter Tsunoda into La Source, but the Hitech driver was left out wide, allowing Nobuharu Matsushita to come through to snatch second into Eau Rouge.
However, Matsushita couldn't hold second place for long, as heavy tyre degradation allowed Mazepin to regain second place two laps later with a simple pass heading into Les Combes.
Matsushita continued falling back down the order, before contact with MP Motorsport teammate Felipe Drugovich put him out of the race.
Drugovich was heading into Blanchimont when he clipped the right-rear of Matsushita's car, causing a puncture and pitching the Japanese driver into a spin. Drugovich himself suffered damage to his front wing and had to head to the pits immediately, one lap before the pitstop window was due to open.
A virtual safety car was deployed for a lap, before the action resumed with Tsunoda leading by three seconds from Mazepin and Mick Schumacher, who had propelled himself to third after qualifying seventh on the grid.
Mazepin and Schumacher were the first of the frontrunners to stop on lap 10 of 25, with Tsunoda pitting a lap later to cover them off.
However, slow pit work on the right-rear tyre by Carlin left Tsunoda vulnerable, and he emerged out of the pits behind Mazepin, who assumed the effective race lead.
Tsunoda's deficit to Mazepin stood at the best part of four seconds after the stops, but the Honda/Red Bull junior managed to eat into Hitech driver's advantage, bringing the gap under one second by the end of lap 18.
Tsunoda made two attempts at passing Mazepin on laps 20 and 24 heading into Les Combes, but Mazepin held his line, forcing the Carlin drive out wide and over the kerbs.
Tsunoda was close enough to attempt a similar move on the final lap but appeared to back out of it, giving Mazepin enough breathing space to cross the chequered flag with less than a second in hand.
However, on the slow-down lap, stewards added five seconds to Mazepin's time for forcing Tsunoda off track during their second on-track battle at Les Combes on lap 24, handing the win to Tsunoda.
Mazepin will be investigated separately for an unsafe release after the race after the Russian driver ran close to the Trident mechanics as he drove out of hit pitbox on lap 10.
Meanwhile, Mick Schumacher lost several seconds in the pitstop due to a slow front-left tyre change, but the Prema driver held on to third to score his fifth podium of the year.
Louis Deletraz finished fourth for Charouz ahead of Prema's Robert Shwartzman, who had a lonely race en route to fifth.
DAMS' Dan Ticktum, who missed the first practice after his initial COVID-19 test returned inconclusive results, faced heavy pressure from second Virtuosi of Guanyu Zhou at the Bus Stop chicane on the final lap to take sixth place.
Zhou had dropped to ninth after his late pitstop for soft tyres, having started on primes, but managed to carve his way up the field to finish seventh.
Williams test driver Roy Nissany secured his best F2 finish since his return to the category this year, making the alternative prime/soft tyre strategy work to finish eighth and gain the reverse grid pole for Sunday's sprint race.
Luca Ghiotto finished ninth in the second of the Hitech cars, while championship leader Callum Ilott endured a difficult race en route to 10th and saw his championship lead shrink to just seven points.
Red Bull protege Juri Vips finished three seconds off the final point-paying position in 11th on his F2 debut, having replaced an injured Sean Gelael at DAMS.
|3||20||Mick Schumacher||Prema Powerteam||25||5.639|
|4||11||Louis Deletraz||Charouz Racing System||25||10.381|
|5||21||Robert Shwartzman||Prema Powerteam||25||13.595|
|12||12||Pedro Piquet||Charouz Racing System||25||29.776|
|13||5||Marcus Armstrong||ART Grand Prix||25||36.414|
|14||9||Jack Aitken||Campos Racing||25||36.613|
|16||16||Artem Markelov||HWA AG||25||44.258|
|17||6||Christian Lundgaard||ART Grand Prix||25||46.051|
|18||17||Giuliano Alesi||HWA AG||25||47.045|
|20||15||Felipe Drugovich||MP Motorsport||25||2'10.717|
|10||Guilherme Samaia||Campos Racing||15|
|14||Nobuharu Matsushita||MP Motorsport||3|
|View full results|