Mick Schumacher led from pole at the Red Bull Ring to take his fifth consecutive Formula 3 European Championship race win, as main title rival Dan Ticktum crashed out.
Schumacher got the jump on fellow Prema Powerteam drivers Marcus Armstrong and Robert Shwartzman at the start to maintain the Italian team's 1-2-3.
Shwartzman tried to pass Armstrong on the opening lap, before his fellow Ferrari junior settled into second place.
After an early safety car when Van Amersfoort Racing team-mates Keyvan Andres and Sebastian Fernandez collided, Schumacher set to work building the gap to Armstrong, which settled around 1.5 seconds.
There was another safety car as the race entered its closing stages, after Artem Petrov and Alex Palou collided at Turn 4 as they battled for 11th place. Van Amersfoort Racing driver Petrov ended up in the gravel and Hitech GP's Palou pulled off at Turn 1 with a puncture.
That set up a sprint to the finish, and Shwartzman was again unsuccessful in his efforts to pass Armstrong, who had damaged his front tyre by running wide and was struggling on the brakes.
Juri Vips had settled in fourth, and shadowed Shwartzman for much of the race, after getting the better of an early battle with Motopark team-mate Jonathan Aberdein.
Aberdein then lost out to Prema's Ralf Aron on the second restart, but it was behind the sixth-placed South African that the drama occurred.
Red Bull Junior Ticktum tried to pass Sacha Fenestraz at Turn 3 at the restart, only for the Renault Formula 1 protege to run wide.
That allowed a run up the inside onto the back straight from Jehan Daruvala, who had already survived a collision with Carlin team-mate Nikita Troitskiy that tipped the Russian up onto two wheels and into the gravel at Turn 4.
Ticktum found himself pincered between the Carlin cars of Daruvala and Fenestraz on the back straight - there was contact between Ticktum and Fenestraz, and Daruvala also got caught up in the shunt, which put all three out of the race.
Schumacher took the win under caution, from Armstrong and Shwartzman.
"We had the worst side of the starting grid as it was a bit wet, but there were no issues with my start and it was enough to stay in front," said Schumacher, who is now 43 points ahead of Ticktum.
"I saw the guys fighting behind so I had a bit of a gap. It's a shame we finished under the safety car - it would have been nice to finish with a comfortable margin but I didn't get the chance."
The three-car shunt allowed Fabio Scherer, who started from a grid-penalised 22nd for picking up three written reprimands this weekend, to haul his Motopark car into seventh thanks to a late pass on Carlin's Ferdinand Habsburg.
Ninth was Prema man Guan Yu Zhou, while Sophia Florsch scored her maiden F3 point as the sole survivor for Van Amersfoort Racing.
Result - 22 laps
|1||Mick Schumacher||PREMA Theodore Racing||Dallara/Mercedes||35m47.756s|
|2||Marcus Armstrong||PREMA Theodore Racing||Dallara/Mercedes||0.348s|
|3||Robert Shwartzman||PREMA Theodore Racing||Dallara/Mercedes||0.747s|
|5||Ralf Aron||PREMA Theodore Racing||Dallara/Mercedes||2.463s|
|9||Guanyu Zhou||PREMA Theodore Racing||Dallara/Mercedes||8.625s|
|10||Sophia Florsch||Van Amersfoort Racing||Dallara/Mercedes||9.337s|
|11||Enaam Ahmed||Hitech Bullfrog GP||Dallara/Mercedes||9.874s|
|12||Ben Hingeley||Hitech Bullfrog GP||Dallara/Mercedes||11.217s|
|16||Sacha Fenestraz||Carlin||Dallara/Volkswagen||2 Laps|
|17||Dan Ticktum||Motopark||Dallara/Volkswagen||2 Laps|
|18||Jehan Daruvala||Carlin||Dallara/Volkswagen||2 Laps|
|-||Alex Palou||Hitech Bullfrog GP||Dallara/Mercedes||Retirement|
|-||Artem Petrov||Van Amersfoort Racing||Dallara/Mercedes||Retirement|
|-||Keyvan Andres||Van Amersfoort Racing||Dallara/Mercedes||Retirement|