Renault Formula 1 junior Jack Aitken won a typically frenetic Baku Formula 2 race for Campos, the event hitting its one-hour time limit amid safety car periods and seven retirements.
ART Grand Prix's Nyck de Vries made a strong start and earned a six-second lead before the pitstops, but difficulty putting his front-left tyre at the stop on made him vulnerable.
Aitken also made a strong start, and was in position to jump de Vries on the out-lap after the pair had pitted at the same time.
Aitken then established a lead before a late safety car for Guan Yu Zhou crashing into Juan Manuel Correa at Turn 1 with under 10 laps to go.
On the subsequent restart, a number of drivers hit each other, including DAMS' Sergio Sette Camara who was spun out of fourth in apparent contact from Virtuosi Racing's pre-race championship leader Luca Ghiotto.
The restart was aborted, and there were four minutes left on the clock when racing resumed.
Aitken delivered a brilliant restart to win at a track where he finished second last year having started at the back following a stall on the formation lap.
It was also Aitken's first F2 feature race win after his sprint race win at Barcelona in 2018 with ex-team ART Grand Prix.
De Vries - now with ART from Prema last year - held on for second while Jordan King pulled off an epic drive.
The MP Motorsport driver had wallowed in the back end of the top 10 for much of the early running after made a poor start from fifth and run wide at Turn 1.
He stayed patient and produced a spectacular move around the outside of Turn 3 to jump DAMS driver Nicholas Latifi on the penultimate lap. Williams junior Latifi held on for fourth.
Dorian Boccolacci scored his best F2 feature race result with fifth in the second Campos car ahead of the recovering Ghiotto - now jumped by Latifi in the points - who is under investigation for the Sette Camara safety car incident.
Two of the drivers of the race followed. Prema Racing's Sean Gelael took seventh from 19th on the grid after being disqualified from qualifying for clipping two marshals who were helping him restart his car.
Alfa Romeo F1 reserve driver Correa took eighth in his first ever race on a proper street circuit, earning reversed-grid pole for Sunday's race in the Sauber Junior Team car, despite being hit by Zhou.
Nikita Mazepin - de Vries's team-mate - took ninth ahead of Anthoine Hubert, who raced brilliantly again but sank down the order after heading into the runoff at Turn 1 on the last restart.
Louis Deletraz joined Sette Camara in retiring after contact at the penultimate restart, while Callum Ilott had an issue with his car then too.
Deletraz's polesitting team-mate Nobuharu Matsushita - a Honda F1 junior - also had a reliability issue early in the race while running in the top five but took fastest lap.
Mick Schumacher spun at Turn 16 and retired having stalled, while fellow Ferrari junior Giuliana Alesi retired after contact with Trident team-mate Ralph Boschung on the first lap.
Feature race result
|1||Jack Aitken||Campos Racing||26||1h02m27.628s|
|2||Nyck de Vries||ART Grand Prix||26||2.221s|
|3||Jordan King||MP Motorsport||26||4.134s|
|5||Dorian Boccolacci||Campos Racing||26||9.499s|
|6||Sean Gelael||Prema Racing||26||12.313s|
|7||Juan Manuel Correa||Sauber Junior Team by Charouz||26||13.154s|
|8||Nikita Mazepin||ART Grand Prix||26||13.676s|
|10||Anthoine Hubert||BWT Arden||26||18.200s|
|11||Mahaveer Raghunathan||MP Motorsport||26||29.798s|
|13||Nobuharu Matsushita||Carlin||25||1 Lap|
|-||Sergio Sette Camara||DAMS||19||Retirement|
|-||Callum Ilott||Sauber Junior Team by Charouz||18||Retirement|
|-||Tatiana Calderon||BWT Arden||16||Retirement|
|-||Mick Schumacher||Prema Racing||7||Retirement|