Max Verstappen emerged victorious in a chaotic Dutch Grand Prix disrupted by torrential downpours, several crashes and a last-gasp red flag.
The world champion kept a cool head despite the jaw-dropping drama in Zandvoort and clinched a ninth consecutive win, matching Sebastian Vettel's record, as well as his third straight triumph on home territory.
Fernando Alonso finished second while Sergio Perez, who had led early on, missed out on the top three, having slipped off the track during the race's second downpour and been hit with a five-second penalty for speeding in the pitlane.
That opened the door for Alpine's Pierre Gasly to take the final podium spot, with Perez and Carlos Sainz taking fourth and fifth respectively.
Rain had struck the circuit after the first few laps, forcing drivers to return to the pits and strap on intermediate tyres. After the downpour abated, they were then able to switch back to slicks, allowing the field to belatedly settle into a rhythm.
Verstappen, courtesy of a surprise undercut on race leader Perez, surged into the lead, a position he looked on course to comfortably protect yet again. There would be another dramatic twist in the tale, however, with rain returning on lap 64.
The red flags were quickly waved after Zhou Guanyu crashed at Turn One while Yuki Tsunoda, Hamilton and Bottas also squirrelled nastily at the same corner.
Curiously, Perez was cut adrift in the pitlane after another stop, the red flag leaving him stuck in position and waiting to emerge back out onto the track.
The FIA confirmed he would line up third at the restart, behind Verstappen and Alonso, before his penalty snatched a much-needed podium finish away.
Charles Leclerc retired after sustaining floor damage, meanwhile, with Zhou, Logan Sargeant and George Russell also failing to reach the chequered flag.
Home hero's charge
Having protected his position at the start of the race, Verstappen strapped on intermediates on lap three while drivers crawled and twisted in the rain.
Consequently, he came out adrift of Perez but moved into fourth shortly after. He then dived down the inside of Gasly at Turn Three to take third.
Guanyu was the next driver dispatched at the same corner, leaving Verstappen and Perez embroiled in a fresh, intriguing battle at the front.
Controversy struck, though, when Verstappen pitted first for slicks, despite the fact that the driver ahead in a team is typically given priority. A shocked Perez asked if he had been undercut and was informed that had indeed been the case.
The Mexican himself pitted shortly after but was left trailing in the leader's wake.
Downpour drama
Shortly after lights out, Alonso had bombed down the inside of Russell at the steep bank of Turn Three to move into third place, shaking up the order early on.
The rain began to fall for the first time at the end of the circuit, however, and Perez dived into the pits to pull on intermediates. Promptly, he charged into the lead ahead of Norris and Russell, both squirming under a sudden lack of grip.
Leclerc was among the next group to pit but, staggeringly, Ferrari's crew were caught flat-footed and weren't ready with the tyres, forcing him to stay stationary for an agonising period. His race, of course, later took a turn for the worse.
At the rear, Hamilton slipped into last and aired his frustration over team radio. In response, he was told to soldier on through the difficult conditions.
Podium scrap
With the chaos of the early stages dissipating somewhat, Alonso mounted a steady defence of the final podium spot despite Sainz's sudden challenge.
A horror pit stop, however, dropped him to P5, with Alonso stationary for 8.5s after engineers frantically attempted to prise a new tyre onto his front left.
Yuki Tsunoda, who had so bravely battled for a points finish but was dislodged after delaying a stop, was overtaken by Alonso before he set the new fastest lap.
Sainz was then thrillingly outmatched on the inside of Turn One, Alonso having thrown his car around the pacey Ferrari to move back into third.
A slip and slide from Perez when the rain returned freed up Alonso to edge into second and the veteran made no mistake in fending off his rival.
Mercedes endured a mixed race and were initially guilty of bungling their strategy.
After Hamilton informed the team he believed he should have been able to change his tyres during the earlier downpour, Russell was the next to voice his irritation.
Indeed, he was helpless to prevent himself from slipping from a likely podium charge to a lowly 18th place and eventually turned to the hard tyres.
"I was forecast a potential podium, how did we mess this up?" he asked. His mood would have been worsened after a sudden slump after the Safety Car restart.
Sargeant smash
Following his crash in Q3, Sargeant was again sent spinning into the barrier in the race, bringing an initially promising weekend to a shuddering halt.
Sargeant's Williams went wide at Turn Seven and lost his grip before colliding with the barrier at the next corner, shattering much of his front wing into pieces.
The Safety Car was summoned as a result but those racing in the top 10 opted to stay out, given they had pitted shortly before to adapt to the fluid conditions.
Damningly, Sargeant is still to pick up his first points haul this season.
Debut success
Even a 10-second time penalty for Liam Lawson couldn't mar his maiden race.
A bright start propelled the rookie into 11th place and he was able to keep himself from being cut adrift from the rest of the grid in 13th, an admirable achievement.
Lawson also memorably streaked beyond Leclerc's Ferrari in what will certainly prove to be the first of many races at the top of motorsport for the young talent.
Dutch Grand Prix 2023 results
The final classification from Zandvoort is as follows: