The Prema Racing driver lined up sixth, making up a place on the first lap before an early safety car.
He was then able to capitalise on contact between poleman Gregoire Saucy (ART) and his team-mate Paul Aron to move into the podium places.
The 2021 Aston Martin Autosport BRDC Young Driver of the Year was then able to pass fellow Prema driver Dino Beganovic for second on lap 14, before taking the lead from championship leader Gabriel Bortoleto the following tour.
Despite a very close final lap fight between Williams Academy member O’Sullivan, Bortoleto, Franco Colapinto (MP Motorsport), Hitech driver Sebastian Montoya and Caio Collet (VAR), it was O’Sullivan who emerged victorious.
Bortoleto held on for second for Trident, with Collet taking the final podium place after contact between Montoya and Colapinto at Turn 6 saw the Red Bull junior shoot across the gravel, falling to 10th, while Colapinto finished fourth.
Saucy lined up on pole for Sunday’s race, which took place in far drier conditions than Saturday’s mixed action.
Despite Williams juniors O’Sullivan and Colapinto making brief contact at Turn 3, the pair continued, before the safety car was deployed as Gabriele Mini (Hitech) ran off at Turn 4.
Source: Autosport