The Prema rookie lined up second before passing poleman and championship leader Theo Pourchaire (ART) at Turn 3.
Ferrari junior Bearman endured five safety cars, with a quick pitstop enough to secure him victory as he emerged closely ahead of Pourchaire.
Ayumu Iwasa finished second for DAMS, having passed the Frenchman on lap 27, with Pourchaire third as the race finished behind the safety car.
Vesti crashed out on lap one after contact from Roman Stanek (Trident), leaving him pointless and handing Pourchaire a 25-point lead heading into the season finale at Abu Dhabi.
Poleman Pourchaire held the lead off the line, but was passed by Bearman at Turn 3, before Vesti spun out at Turn 5 after being nudged onto the grass, prompting the first safety car, as Clement Novalak (Trident) also crashed out following contact from Amaury Cordeel (Virtuosi).
Racing resumed on lap four before the safety car was deployed again three laps later, with Arthur Leclerc (DAMS) crashing down the Turn 1 escape road, ending his race.
Most of the field stopped under the safety car, with Jehan Daruvala (MP Motorsport) inheriting the lead ahead of Jack Doohan (Virtuosi) and DAMS driver Ayumu Iwasa, who had benefitted from the alternate strategy to make up 12 places.
Bearman was perilously close to Pourchaire in the pits, but edged out ahead, with no further action after an investigation for unsafe release, to hold position.
Though the safety car pulled into the pits ahead of lap 12, it was almost immediately redeployed after Zane Maloney (Rodin Carlin) was hit from behind by Roy Nissany at the restart, causing a wreck on the start-finish straight.
In the interim, Doohan had taken the lead up ahead, but he and Daruvala were both quickly passed by Iwasa at the Variante della Roggia before Bearman passed Doohan.
Daruvala and Iwasa then stopped under the safety car, handing Bearman back the lead ahead of Doohan, who was yet to stop.
Racing resumed on lap 16, with Bearman going early, before Doohan and Pourchaire almost made contact at the second chicane the following lap, though both escaped without damage.
Pourchaire passed Doohan for second at Turn 1 on lap 18 as, further back, team-mate Victor Martins was forced to retire with a broken DRS, having been shown the black and orange flag.
There was more chaos on lap 23 as Kush Maini, who was running fifth, collided with the rear of Jak Crawford’s Hitech-run car ahead of the second chicane, ending the Campos driver’s race and prompting yet another safety car. Doohan stopped under this safety car from third, emerging in 11th, as Daruvala also stopped.
With four laps to go, the field was again released, with Iwasa making it past Pourchaire with a daring move at Turn 1 for second. But the racing wasn’t to last, as Crawford came to a stop after Turn 9, having gone straight across the gravel and prompting another safety car, under which the race ended.
Enzo Fittipaldi finished fourth for Rodin Carlin, with MP Motorsport’s Dennis Hauger in fifth ahead of Doohan. Daruvala was seventh, ahead of Virtuosi’s Amaury Cordeel, Ralph Boschung (Campos) and Stanek.
F2 returns for its season finale in Abu Dhabi from 24-26 November.
F2 Monza feature race results