Alex Albon used a good start to take his third victory from four events in GP3 and with it the points lead in race two at the Hungaroring.
Starting second on the grid, Albon made a better getaway than polesitter Arjun Maini to lead into Turn 1.
Towards the rear, Akash Nandy tagged Nyck de Vries and was spun into the barriers on the right-hand side, launching him into a dramatic series of rolls. The Jenzer driver was able to get out unharmed.
There was drama at the restart when third-placed Charles Leclerc was hit from behind at the penultimate corner by Ralph Boschung, who was then knocked wide and down the order himself at the final turn.
For Leclerc there seemed to be no ill effects from that contact, and the top three were covered by no more than a second and a half for several laps.
Albon later began to pull away though and finished up 3.3 seconds clear – despite a final-lap scare when he put two wheels on the grass exiting the chicane.
The fastest lap on the penultimate tour puts him three points clear of Leclerc, having been four behind at the start of the race.
Maini resisted pressure from his 2015 Formula 3 team-mate Leclerc to finish his fourth GP3 race in second place.
A big lock-up at the penultimate corner put Leclerc into the clutches of Jack Aitken, who was having by far his best GP3 drive to-date but was warned for exceeding track limits on more than one occasion and thus settled for fourth.
For the second time this season Nirei Fukuzumi had problems getting his car up to speed off the initial grid but was able to re-take his position and go on to finish fifth, in front of race one winner Matt Parry.
While Boschung was handed a drive-through penalty for the clash with Leclerc at the restart, Jake Dennis had to hold off Matevos Isaakyan for seventh.
Antonio Fuoco‘s second place on Saturday had put him level on points with Albon, but he failed to score after slipping back from seventh on the grid to 10th, behind Kevin Jorg.
Prevented from starting on pole in race one when his engine failed to start due to a temperature issue, Nyck de Vries used his supreme Hungaroring pace to climb from 20th to 13th.