Lining up third, the Prema driver, who is second in the championship, had a great start as he and Richard Verschoor (VAR) tussled with poleman Ralph Boschung (Campos) for the lead.
Boschung locked up into Turn 1 before Vesti made it into the lead soon after, with Verschoor in second.
Despite an early safety car, Vesti remained in control, and though there was a second pause in action and a late challenge from charging ART driver Victor Martins, held on to take victory.
It is the Dane’s fifth win of the season, closing the gap to championship leader Theo Pourchaire, who finished fourth behind Verschoor, to nine points.
The leading trio ran three-wide into Turn 1, with Boschung locking up and forced through the escape road as Vesti and Verschoor tussled for the lead, while Kush Maini moved into third for Campos.
The safety car was deployed for the first time after Virtuosi driver Amaury Cordeel came to a stop on track at the second chicane, having made contact with Zane Maloney (Rodin Carlin).
Vesti went early on the restart, leading from Verschoor and Maini as Boschung continued to fall backwards, eventually pitting with an issue.
Behind, Martins made it past Jak Crawford (Hitech) and his team-mate Pourchaire on lap six, before taking third from Maini up the inside of Turn 1 two tours later.
Vesti was 1.2s clear of Verschoor up ahead, but the gap to the charging Frenchman was closing, down to 0.9s by lap 10.
Martins then made it past Verschoor at Turn 2 for second on lap 12 before the safety car was deployed again after PHM’s Roy Nissany came to a stop at Turn 5, having tussled with Juan Manuel Correa (VAR).
Racing resumed on lap 16, with Pourchaire passing Maini for fourth at the second chicane.
The midfield pack had bunched up behind, with several drivers fighting between ninth and 14th. Dennis Hauger ran across the gravel at Ascari and almost made contact with OIlie Bearman (Prema) upon rejoining.
Martins had closed on Vesti with two laps remaining but was unable to catch the Dane.
Pourchaire settled for fourth with Maini in fifth and Crawford sixth after Hadjar was handed a five-second penalty for leaving the track and gaining an advantage.
Bearman finished seventh ahead of DAMS’ Arthur Leclerc, Trident driver Roman Stanek and Jack Doohan (Virtuosi).