Marvin Kirchhofer took a narrow second GP3 victory of 2015 after holding off a mounting attack from Emil Bernstorff.
From pole position, Kirchhofer opened up a 1.7-second lead over fellow front-row starter Bernstorff, but that advantage was gradually eroded by the Anglo-Dane as the race wore on.
Bernstorff closed to within half a second with three laps remaining, forcing Kirchhofer to get defensive and to weave on the straights to break the tow.
A slow first sector from Kirchhofer on the penultimate lap allowed Bernstorff to get around the outside of Luffield and Woodcote, but the Arden driver had to back out of the move into Copse and eventually fell 0.3 seconds short of a home win.
There was another Brit in third with Matt Parry claiming his maiden podium finish with a straightforward drive after passing Alex Palou off the start.
Having also been passed by the second Koiranen car of Jimmy Eriksson, Palou later dropped out with a mechanical issue, meaning he has still failed to score a point this season despite starting all three main races from inside the top four on the grid.
Eriksson – the winner of this race in 2014 – had his hands full late on defending from championship leader Luca Ghiotto, and the Italian eventually got past with a fine move around the outside of Stowe on the final lap.
Esteban Ocon took a low-key sixth ahead of Kevin Ceccon and Ralph Boschung, who is poised to start from the reverse grid pole for the second consecutive round.
Artur Janosz and Matheo Tuscher completed the top 10.
Results to follow