Williams Formula 1 junior Nicholas Latifi delivered a flawless drive in a tricky Hungaroring Formula 2 race to eat into championship leader Nyck de Vries's advantage.
The key move of the race was done at the start: polesitter de Vries held the inside line from pole into Turn 1, but ran wide and DAMS driver Nicholas Latifi was able to execute an undercut to take the lead from third at the corner exit.
Latifi then showed incredible longevity on the red-walled soft Pirellis, and even though ART Grand Prix's de Vries attempted the undercut, Latifi held the lead.
The DAMS driver had a scare when de Vries closed in around 12 laps into the 34-lap race, thanks to traffic.
But Latifi passed Juan Manuel Correa at Turn 2 which provided welcome respite, and then pulled three seconds clear in the following two laps to gain a comfortable margin.
The Williams Formula 1 junior took the lead on lap 29 after those on the alternate strategy had pitted, and had 6.8s in hand over de Vries which he managed to the finish for his fourth win of 2019.
De Vries still has a strong championship lead, limiting the points loss to Latifi with his second place finish.
Renault junior Jack Aitken had made a lightning start from seventh to fifth, and then jumped both Prema Racing's Mick Schumacher and Virtuosi Racing driver Luca Ghiotto in the pit stops, taking a net third in the order.
Ghiotto appeared to close in momentarily after the pitstops, but Aitken then pulled a strong gap and the Silverstone reversed-grid race winner looked safe.
In the last 10 laps Ghiotto closed back in, although Aitken narrowly managed to weather the storm and took the final spot on the podium.
Ghiotto came under attack from the charging Carlin driver Nobuharu Matsushita in the closing stages, and Latifi's DAMS team-mate Sergio Sette Camara also joined the train.
Sette Camara mugged Matsushita in the final five laps, making the most of the Honda junior's unsuccessful move on Ghiotto at Turn 1.
A late safety car for Ralph Boschung's expiring Trident then froze the order, meaning Ghiotto kept fourth and headed Sette Camara and Jordan King at the flag.
But then VSC infringement penalties changed the order, dropping Ghiotto from fourth to sixth, ahead of King who was also penalised.
King had been charging through the order having run the slower medium tyre early on, and passed Matsushita for sixth just before the safety car and complained that it "spoiled all our fun" with further overtakes a realistic possibility.
With the penalties, Sette Camara took fourth ahead of Matsushita, Ghiotto and King.
Mick Schumacher had been with Ghiotto and in the battle for a podium mid-race, but slipped back three-quarters into the race seemingly struggling for tyre life.
He was caught napping at the virtual safety car restart on lap 22 of 37 by Matsushita, and finished eighth behind the Japanese driver.
It does mean Ferrari junior Schumacher takes the reversed-grid pole for Sunday's sprint race.
First-year duo Guan Yu Zhou of Virtuosi Racing and Sauber Junior Team's Callum Ilott took the final points for ninth and 10th respectively.
|2||Nyck de Vries||ART Grand Prix||Dallara/Mecachrome||37||1h02m41.427s||0.752s||CLA|
|3||Jack Aitken||Campos Racing||Dallara/Mecachrome||37||1h02m41.720s||1.045s||CLA|
|5||Sergio Sette Camara||DAMS||Dallara/Mecachrome||37||1h02m44.819s||4.144s||CLA|
|6||Jordan King||MP Motorsport||Dallara/Mecachrome||37||1h02m45.723s||5.048s||CLA|
|8||Mick Schumacher||Prema Racing||Dallara/Mecachrome||37||1h02m56.482s||15.807s||CLA|
|10||Callum Ilott||Sauber Junior Team by Charouz||Dallara/Mecachrome||37||1h02m59.237s||18.562s||CLA|
|11||Anthoine Hubert||BWT Arden||Dallara/Mecachrome||37||1h03m00.693s||20.018s||CLA|
|12||Nikita Mazepin||ART Grand Prix||Dallara/Mecachrome||37||1h03m02.747s||22.072s||CLA|
|14||Juan Manuel Correa||Sauber Junior Team by Charouz||Dallara/Mecachrome||37||1h03m04.431s||23.756s||CLA|
|15||Sean Gelael||Prema Racing||Dallara/Mecachrome||37||1h03m08.858s||28.183s||CLA|
|16||Tatiana Calderon||BWT Arden||Dallara/Mecachrome||37||1h03m56.498s||1m15.823s||CLA|
|17||Mahaveer Raghunathan||MP Motorsport||Dallara/Mecachrome||37||1h03m57.387s||1m16.712s||CLA|
|18||Ralph Boschung||Trident||Dallara/Mecachrome||33||55m16.280s||4 Laps||CLA|
|-||Arjun Maini||Campos Racing||Dallara/Mecachrome||17||28m14.092s||Hydraulics||DNF|