Alexander Albon was victorious in the Silverstone Formula 2 feature race as early leader George Russell suffered a slow pitstop and a penalty for speeding in the pits.
Russell led from pole after the rolling start and consistently pulled away from Albon in the first few laps.
With everyone except Tadasuke Makino and Ralph Boschung starting on softs, 17 drivers pitted within three laps in the early stages.
Russell and Albon were the first ones to do so and the duo swapped positions in the pits due to a sluggish stop from the ART crew.
Russell's chances of victory shrank when he, as well as teammate Jack Aitken, received a five-second time penalty for speeding in the pitlane.
The gap between Albon and Russell remained close for the rest of the race as both drivers found their way past Boschung, who had yet to pit, and finished first and second.
They were separated by 4.7s at the line, which then grew to 9.7s after Russell's penalty was applied.
Antonio Fuoco reported a lack of power after the start but the Charouz driver spent the whole race in third, the Italian recording his sixth consecutive top-four finish.
He was attacked by Sergio Sette Camara in the late stages only for the Brazilian's Carlin machine to start blowing smoke, forcing him to retire.
Louis Deletraz (Charouz) had to defend from a train of cars after the pitstops but he only let Sette Camara and Luca Ghiotto (Campos) through.
Ghiotto suddenly had Deletraz and Artem Markelov (Russian Time) all over him on the final lap, with the former demoting him to fifth.
Nyck de Vries (Prema), who lost out to Markelov on a VSC restart, settled for seventh.
Maximilian Gunther (Arden) took reverse-grid pole for Sunday's sprint race in eighth with Aitken and Tadasuke Makino (Russian Time) finishing ninth and 10th.
However, Aitken, who had a second penalty for a VSC infringement, was only classified 13th with Makino dropping to 12th after he received the same sanction.
That promoted Boschung and Lando Norris (Carlin) into the top 10.
Arjun Maini and Norris were running sixth and seventh before the stops but both drivers lost out massively in the pits, dropping to the back of the field.
Both were then involved in incidents later on with Norris making contact with Prema's Sean Gelael, who spun out.
That resulted in the second short VSC stint in the race, the first one caused by Arden driver Nirei Fukuzumi stopping on track.
Maini meanwhile was forced off-track by his Trident teammate Santino Ferrucci, for which the American was given a five-second penalty.