Red Bull's Max Verstappen survived losing the lead in early rain and a red flag for a late torrential downpour to win a chaotic Dutch Grand Prix.
Verstappen equalled the all-time record of nine victories in a row and took his 11th win of the season to extend his championship lead to 138 points.
A shower just as the race started dropped Verstappen to second behind team-mate Sergio Perez before he repassed on lap 13, while heavy rain with eight laps to go forced a red flag and a 45-minute delay.
But through it all Verstappen was always in control, as he has been for the entire season, and never really looked like losing the race.
Fernando Alonso starred in the Aston Martin to finish second after a typically combative race, while Alpine's Pierre Gasly took the final podium position after Sergio Perez, who finished third on the track, was penalised for speeding in the pit lane.
Perez had been running second behind Verstappen but lost the place to Alonso when he went off at Turn One after changing to intermediate tyres when the rain came down just before the race was stopped.
In the final seven racing laps, Perez did enough to prevent dropping behind Ferrari's Carlos Sainz, who fended off an attack from Lewis Hamilton's Mercedes.
McLaren's Lando Norris took seventh ahead of Williams' Alex Albon, outstanding in being one of only two drivers to brave staying out on dry-weather tyres throughout the first rain period, before doing a super-long stint on his starting set.
The other McLaren of Oscar Piastri and Alpine's Esteban Ocon completed the top 10 points positions, while Alonso deprived Verstappen of fastest lap by pushing hard as the final rain shower approached the track.
Sprint to the chequered flag
The final sprint to the end was relatively uneventful after such a madcap race, as Verstappen eased away from Alonso on a wet track following a restart behind the safety car and the Spaniard held off Perez's attacks.
For Aston Martin it was an encouraging performance, after they slipped to the back of the pack chasing Red Bull in the four races before the summer break.
An upgrade featuring a new floor for this race seems to have returned the car to its former position, and Alonso went with it with an outstanding drive.
Gasly had benefited from being one of the drivers who stopped at the end of the first lap, and the Frenchman drove a strong race from there on to hang on in the pack at the front and fend off an attack from Sainz.
He even managed to make up for a five-second penalty for speeding in the pit lane to take his first podium of the season.
Before the red flag
The capacity crowd almost entirely made up of fans supporting their home hero were expecting and hoping for a Verstappen demonstration. They got it, but not perhaps in the way anticipated.
With Verstappen leading away from pole, rain started as the lights went out and the action started immediately.
Alonso, starting fifth, passed Albon around the outside in Turn Two, dived down the inside of the heavily banked Hugenholzbocht that follows past Russell's Mercedes.
The next lap, he drew in front of Lando Norris' McLaren out of the same corner on the run to the daunting Scheivlak corner that follows.
The rain came down increasingly heavily through that first lap, and Perez, who had started seventh, dived into the pits for treaded intermediate tyres at the end of it.
But none of the other frontrunners followed him in - the next highest driver to pit was Ferrari's Charles Leclerc, who stared ninth - and the decision won Perez the lead.
Verstappen and Alonso, still on slick tyres, lost time on the second lap and when they pitted at the end of it they came out in fifth and seventh places before other drivers started to pit.
But while Perez now had a 14-second and three-place lead over his team-mate, Verstappen's superiority was quickly apparent, as he began to carve into the Mexican's advantage.
By lap 10, Verstappen was less than five seconds behind Perez, and a lap later Verstappen was in the pits for a change to slick tyres.
Perez followed him in a lap later, but Verstappen had made up so much time on his out lap that he was nearly three seconds in front when his team-mate rejoined.
That was effectively the end of the race for the win, but there was plenty of action behind.
A bad day for Mercedes
While Perez benefited from the early shower, the Mercedes drivers were the big losers.
They delayed their stops, hoping to stick it out on slick tyres, only for it to become quickly apparent that this strategy was not the right one.
Hamilton stopped on lap three, and George Russell on lap four, and they dropped well out of the top 10 as a result.
Russell switched to hard tyres for a long stint, while Hamilton went for softs. Both made up ground as the race wore on, and Hamilton was sixth and Russell eighth at the final restart.
But Russell dropped to the back after the final restart following a collision with Norris at Turn 11/12. He pitted thinking the car was broken but went back out to take the flag.
"The race was over before it really got started," said the 25-year-old Briton.
"I think the information we had regarding the weather was totally wrong. We thought the rain was going to last for a couple of minutes - and it clearly lasted for longer."
Mercedes team principal Toto Wolff told Sky Sports the team had not been prepared for the first downpour at Zandvoort.
"We stayed out catastrophically too long, completely wrong," said Wolff. "And that's annoying because the car had great pace."
The one driver who committed to staying on slicks was Albon, who had starred in qualifying fourth.
The British-born Thai dropped to 14th, but his decision began to pay him back as others pitted for dry tyres and he made up places.
In the end, Albon did a 44-lap stint on his soft tyres before pitting out of fifth place.
Dropping to 11th, Albon soon moved back into the top 10 and took a well-deserved four points at the flag.
What led to Hitler's ultimate downfall? Look at the actions taken as the Third Reich faces collapse in the final weeks of World War Two
Where would he like to go for his next food journey? Stanley Tucci spills the beans in his chat with Lauren Laverne