Sergio Perez won a chaotic and thrilling Monaco Grand Prix as Charles Leclerc's dreams of winning on home soil were shattered by his flat-footed Ferrari team.
Leclerc navigated a rain-hit start - delayed by more than an hour following a deluge of rain just a dozen minutes before the lights were due to go out on Formula One's most famous race - to control the early stages.
But the Monegasque's race fell apart when Ferrari's strategy was exposed by Red Bull. Perez moved from third to first in the switch from wet to slick rubber, with Leclerc's team-mate Carlos Sainz second and world champion Max Verstappen third.
Leclerc crossed the line in fourth, one place ahead of George Russell with Lando Norris sixth.
Lewis Hamilton started eight and finished in the same position, while Mick Schumacher walked away unharmed from a crash which saw his Haas machinery sensationally split in two.
Following a frenetic climax, Perez finished just 1.1 seconds ahead of Sainz with the top four covered by less than three seconds.
Leclerc took pole position under blue skies here on Saturday, but a downpour in the moments before Sunday's race changed the complexion of his afternoon.
The scheduled 3pm getaway was delayed by nine minutes, and then again to 3:16pm.
The race started - albeit behind the safety car - but as the rain continued to pepper the Monte Carlo asphalt, Eduardo Freitas, officiating just his second F1 race, suspended the event after just two laps and four minutes.
A 45-minute wait ensued before Portuguese Freitas was ready to go racing. Leclerc led the field away, tippy-toeing his way around the two-mile course, with Sainz behind and the Red Bull duo of Perez and Verstappen line astern.
A dry line swiftly emerged, but with track position imperative at a circuit where overtaking is virtually impossible, the leaders were reluctant to switch to new rubber.
But Red Bull blinked first by putting Perez on the intermediate tyres on lap 16 and it proved a masterstroke. The Mexican delivered two speedy laps and when Leclerc stopped for the inter tread, just two laps later, he emerged behind Perez.
It would get worse for the Monegasque when a pit-stop mix-up saw him queue behind Sainz as both Ferrari men changed to slicks.
In a matter of laps, Leclerc, who has never won on home soil, had dropped from first to fourth. Cue a number of expletives from Leclerc's cockpit.
Further back, Hamilton was also turning the air blue as he duelled with Alpine's Esteban Ocon.
"For f*** sake," yelled the seven-time world champion. "He just put me in the wall. I don't know if the car is damaged."
Ocon was later given a five-second penalty for causing a collision, while Hamilton feared he sustained damage but he was able to continue.
Then, on lap 28, the TV cameras dramatically cut to a picture of Schumacher's car torn in two pieces at the high-speed Swimming Pool chicane.
The German - son of seven-time world champion Michael Schumacher - veered into the barrier on the right, before pirouetting across the track and slamming into the armco barrier on the opposing side of the circuit.
"I am OK," the 23-year-old said. "I just don't understand it."
A virtual safety car and proper safety car were then deployed before a full red flag to remove the two parts of Schumacher's wrecked machine and repair the barrier.
The drivers returned to the pits and Leclerc was visibly furious as he stomped off to the Ferrari garage.
After a 20-minute delay, the race was under way again, but with a three-hour time limit, only 64 of the allocated 77 laps were completed.
Despite a late charge from Sainz, Perez held his nerve to win for a first time in Monte Carlo and third in F1.
By virtue of finishing third, Verstappen extended his championship lead over Leclerc from six to nine points.
Hamilton, tucked up behind Fernando Alonso's Alpine, finished 50 seconds back.