Force India development driver Nikita Mazepin topped an ART Grand Prix 1-2-3-4 at Spa, as Anthoine Hubert extended his championship lead again in a thrilling sprint race.
Joey Mawson and Jake Hughes started on the front row, but Arden driver Mawson struggled with his getaway, falling down the order as the ARTs attacked.
Callum Ilott, second in the championship, attempted an ill-judged move on Mawson on lap two which failed and dropped him behind Mazepin and Hughes.
Mazepin then took Hughes for the lead on lap four of 13 and built a steady advantage, keeping the tyres in good condition for just long enough to seal his third GP3 win - although Hubert closed in at the end.
The Frenchman had started in sixth courtesy of his third place on Saturday, and steadily worked his way through the field with multiple overtakes on the Kemmel Straight.
He sat for a number of laps behind Ilott, his closest title rival, before a decisive move at Les Combes for second place.
Hughes ultimately fell away to finish fourth, after struggling with his tyres just like on Saturday. Trident's Pedro Piquet was best of the rest in fifth place.
Giuliano Alesi completed a troubled weekend with a drive from ninth to sixth, while GP3 debutant Richard Verschoor rose 10 places in a brilliant drive in his MP Motorsport car, taking seventh from 17th on the grid.
Ryan Tveter held off a pair of Jenzer Motorsport cars, Tatiana Calderon and Juan Manuel Correa, to take the last point in eighth.
Mawson fell all the way out of the top 10 despite some spirited defending, and then exited the race late on.
Leonardo Pulcini’s horror weekend continued as he retired, with the Italian - who entered the weekend third in the standings - scoring no points in either race.
Saturday's race winner David Beckmann suffered a problem on the warm-up lap and failed to start the race.
Spa F3: Beckmann converts pole into maiden win
GP3 must do better after "basic" ECU mistake - Whiting