Rio Haryanto became the ninth different winner from as many races in the GP3 Series so far this season in a dramatic race hit by rain late-on at the Nurburgring where the lead continually changed hands in the closing laps.

At the beginning of the race, Haryanto got a good start to move into second place as polesitter Mitch Evans retained his lead despite running deep into Turn 1. Lewis Williamson took second place from the Indonesian at the end of the opening lap having moved up from eighth on the grid.

Evans was handed a stop-and-go penalty a few laps into the race for not having his tyres fitted, which dropped him down towards the back. His MW Arden teammate Williamson inherited the lead and looked set for victory until the rain began to come down in the closing laps.

Haryanto closed right up to Williamson and the Scot ran wide at Turn 1 allowing Haryanto through into the lead. Williamson regained first place with a good run out of Turn 4, only for Haryanto to take back the lead at Turn 6.

Valtteri Bottas meanwhile had closed up on the pair and took second place from Williamson at the Turn 7 hairpin. He then tried to take the lead from Haryanto at Turn 10, but the Manor driver held on.

Williamson took second back from Bottas at the final turn on the penultimate lap and then challenged Haryanto at Turn 1 on the final lap. Haryanto remained in the lead though to take the checkered flag ahead of Williamson and Bottas, who held onto third under pressure from ART teammate James Calado at the very end.

Calado had passed Adrian Quaife-Hobbs during the rain, having been behind him since the first lap. Quaife-Hobbs finished in fifth.

Championship leader Alexander Sims had been set for sixth place until he came in to change to wet tyres as the rain came down. He couldn't make up the lost places so finished down in 12th. Conor Daly stayed out to finish in sixth, ahead of the Tech 1 pairing of Aaro Vainio and Tamas Pal Kiss who will line up on the front row of Sunday's race.

Race results – 15 laps:

Pos Driver Team Time/Gap
1 Rio Haryanto Marussia Manor Racing 29:48.703
2 Lewis Williamson MW Arden 2.404
3 Valtteri Bottas Lotus ART 3.183
4 James Calado Lotus ART 3.611
5 Adrian Quaife-Hobbs Marussia Manor Racing 4.948
6 Conor Daly Carlin 18.223
7 Aaro Vainio Tech 1 Racing 19.692
8 Tamas Pal Kiss Tech 1 Racing 21.387
9 Simon Trummer MW Arden 23.635
10 Nigel Melker RSC Mucke Motorsport 32.818
11 Ivan Lukashevich Status Grand Prix 37.554
12 Alexander Sims Status Grand Prix 39.025
13 Vittorio Ghirelli Jenzer Motorsport 44.359
14 Matias Laine Marussia Manor Racing 47.159
15 Nico Muller Jenzer Motorsport 51.928
16 Nick Yelloly Atech CRS GP 59.456
17 Leonardo Cordeiro Carlin 61.306
18 Thomas Hylkema Tech 1 Racing 65.865
19 Pedro Nunes Lotus ART 69.296
20 Mitch Evans MW Arden 69.673
21 Maxim Zimin Jenzer Motorsport 80.469
22 Zoel Amberg Atech CRS GP 82.044
23 Tom Dillmann Addax Team 82.921
24 Dean Smith Addax Team 99.214
25 Luciano Bacheta RSC Mucke Motorsport 202.519
26 Michael Christensen RSC Mucke Motorsport + 1 lap
27 Gabby Chaves Addax Team + 1 lap
28 Antonio Felix Da Costa Status Grand Prix + 1 lap
29 Callum Macleod Carlin + 1 lap
Ret Marlon Stockinger Atech CRS GP 11 laps