Max Verstappen took his fourth consecutive Formula 3 European Championship race win at the Norisring after a thrilling, but chaotic, race.
The Dutchman was the last of three different race leaders - or four, if you count the safety car that was called on no fewer than four occasions.
A sluggish start dropped Verstappen from third on the grid to fourth, behind poleman Felix Rosenqvist, Esteban Ocon and Tom Blomqvist.
One lap after the first restart, Blomqvist inadvertently tapped Ocon into the first hairpin, and Verstappen was forced to cut the corner in avoidance.
A lap later, Verstappen got a run on Blomqvist - who had a damaged front wing - out of the chicane and passed him for third into the final corner, just before the safety car appeared for a second time.
Ocon pulled a peach of a move on Rosenqvist to take the lead into Turn 1 at the restart. On the following lap Verstappen got a run down the outside of the Swede on the start-finish straight and was able to pull across and claim the inside line and second place at Turn 1.
Two laps later Verstappen completed his rise to the lead by outbraking Ocon at the same spot.
The safety car appeared twice more, but each time Verstappen stayed in front, and the Van Amersfoort Racing Dallara-Volkswagen was able to stretch its advantage over the Prema Powerteam Dallara-Mercedes in the final few laps.
"I had some good fights," said Verstappen, "and after that it was quite comfortable - the car was working really well on the street circuit here."
Ocon once again said that the Mercedes engine is lacking straight-line speed against the VW, and the same was true of third-placed Lucas Auer, who passed Rosenqvist in a chaotic third restart that knocked the Mucke Motorsport man's rear wing askew when he was hit from behind.
Rosenqvist seemed powerless to prevent Prema's Nicholas Latifi and the Carlin Dallara-VW of Jake Dennis also passing him as he dropped to a finishing position of sixth.
The third Mucke car of Roy Nissany was close behind Rosenqvist in seventh, with the West-Tec Dallara-Mercedes of Felix Serralles eighth.
Blomqvist pitted under the safety car for the Carlin boys to replace his damaged front wing and fought his way back up to 10th, in the wheeltracks of his stablemate on the Jagonya Ayam scheme, Sean Gelael, who took his best result yet in ninth.
The first safety car was caused by a first-corner collision that eliminated Felipe Guimaraes and Dennis van de Laar, and forced Antonio Giovinazzi to the pits for a new front wing.
The second was caused when Gustavo Menezes and Antonio Fuoco collided at Turn 1 as they disputed 10th place.
The third happened when Giovinazzi mounted the rear of Tatiana Calderon exiting Turn 1, with Santino Ferrucci also going to the pits for a new front wing.
The final caution was occasioned by Jordan King's front wing, loosened in the third restart - which was chaotic as the safety car lights went off very late - falling off and landing in the middle of the track.
Results - 37 laps: Pos Driver Team/Car Time/Gap 1. Max Verstappen Van Amersfoort Dallara-VW 35m15.791s 2. Esteban Ocon Prema Dallara-Merc +1.125s 3. Lucas Auer Mucke Dallara-Merc +3.432s 4. Nicholas Latifi Prema Dallara-Merc +6.464s 5. Jake Dennis Carlin Dallara-VW +7.013s 6. Felix Rosenqvist Mucke Dallara-Merc +7.687s 7. Roy Nissany Mucke Dallara-Merc +9.229s 8. Felix Serralles West-Tec Dallara-Merc +11.065s 9. Sean Gelael Carlin Dallara-VW +12.216s 10. Tom Blomqvist Carlin Dallara-VW +12.878s 11. Mitchell Gilbert Fortec Dallara-Merc +15.400s 12. Santino Ferrucci Eurointernational Dallara-Merc +21.832s 13. Hector Hurst West-Tec Dallara-Merc +22.002s 14. Sandro Zeller Jo Zeller Dallara-Merc +22.482s 15. John Bryant-Meisner Fortec Dallara-Merc +22.826s 16. Alexander Toril T-Sport Dallara-NBE +32.776s 17. Spike Goddard T-Sport Dallara-NBE +33.968s Retirements: Jules Szymkowiak Van Amersfoort Dallara-VW 33 laps Michele Beretta Eurointernational Dallara-Merc 30 laps Jordan King Carlin Dallara-VW 27 laps Tatiana Calderon Jo Zeller Dallara-Merc 16 laps Antonio Giovinazzi Carlin Dallara-VW 15 laps Gustavo Menezes Van Amersfoort Dallara-VW 5 laps Antonio Fuoco Prema Dallara-Merc 5 laps Dennis van de Laar Prema Dallara-Merc 0 laps Felipe Guimaraes Double R Dallara-Merc 0 laps