Jules Bianchi came out on top in a thrilling scrap with Christian Vietoris to take his first GP2 win of the season at Silverstone.
ART driver Bianchi cruised into a comfortable lead once the race got underway in wet conditions after three laps behind the safety car.
His lead was over seven seconds when the pitstops got underway, with drivers coming in to change onto slick tyres as the track dried rapidly.
Bianchi was one of the last to pit, and that meant that Racing Engineering's Vietoris - who had passed Alvaro Parente (Carlin) for second before the stops - was right on the Frenchman's gearbox as he rejoined.
After one lap spent all over the back of Bianchi, Vietoris took the lead on the exit of Luffield. However, it was short-lived as Bianchi re-took the place with a bold move into Copse.
The pair repeated their wheel-to-wheel antics later in the same lap, with Vietoris taking the lead around the outside into Stowe, only for Bianchi to lunge up the inside to regain it on the brakes for the following corner.
After that breathtaking lap the pair ran in tandem, and a handful of laps later Bianchi had the lead out to over a second. He eased away from there, before slowing towards the end on his way to victory.
Vietoris was struggling for pace by the end, meaning he finished just ahead of iSport's Marcus Ericsson and championship leader Romain Grosjean (DAMS). Ericsson had been fifth early in the race, but he reaped the rewards for being the first driver to switch to slicks.
Grosjean picked his way through from 13th to take fourth, while Sam Bird (iSport) overcame an off at Copse just before his stop to take fifth place. Dani Clos had to settle for sixth in the second Racing Engineering car after losing out to the charging Briton just six laps from home.
Stefano Coletti benefited from pitting on the same lap as Ericsson as he charged from 21st to seventh, while title hopeful Giedo van der Garde (Addax) just held off a recovering Parente to take eighth and pole position for race two.
Results - 29 laps:
Pos Driver Team Time/Gap
1. Jules Bianchi ART 58m40.010s
2. Christian Vietoris Racing Engineering + 4.177s
3. Marcus Ericsson iSport + 4.935s
4. Romain Grosjean DAMS + 5.627s
5. Sam Bird iSport + 11.424s
6. Dani Clos Racing Engineering + 23.293s
7. Stefano Coletti Trident + 31.959s
8. Giedo van der Garde Addax + 33.711s
9. Alvaro Parente Carlin + 34.394s
10. Jolyon Palmer Arden + 41.163s
11. Esteban Gutierrez ART + 41.761s
12. Charles Pic Addax + 41.971s
13. Johnny Cecotto Ocean + 46.881s
14. Luca Filippi Super Nova + 47.848s
15. Davide Valsecchi AirAsia + 49.612s
16. Fabio Leimer Rapax + 50.717s
17. Pal Varhaug DAMS + 56.960s
18. Luiz Razia AirAsia + 58.332s
19. Rodolfo Gonzalez Trident + 1m05.327s
20. Kevin Ceccon Coloni + 1m06.251s
21. Fairuz Fauzy Super Nova + 1m20.989s
22. Julian Leal Rapax + 1m26.252s
23. Josef Kral Arden + 1m33.465s
24. Michael Herck Coloni + 1 lap
Max Chilton Carlin 14 laps