Sergio Perez won a rain-delayed, crash-halted and ultimately nail-biting Monaco Grand Prix for Red Bull to make his dream come true as another evaporated for Ferrari's Charles Leclerc.
The Mexican's team mate Max Verstappen finished third to stretch his Formula One championship lead over Leclerc, who was fourth, to nine points after seven of 22 races.
Ferrari's Carlos Sainz was second, for the second year in succession.
Leclerc had started on pole position but Ferrari were outsmarted on strategy and he was leapfrogged by the Red Bull drivers in the pitstops.
He at least ended a home jinx to become the first Monegasque to score in Monaco since Louis Chiron finished third in 1950, the year the championship began, but the race had promised so much more.
The win was the third of Perez's career and second for Red Bull, and it ended with a thrilling chase on a treacherous street circuit where the difference between success and failure is measured in millimetres.
The top four at the chequered flag were separated by a mere 2.9 seconds.
"This is us! Come on, vamos," screamed Perez as he crossed the finish line 1.1 seconds ahead of Sainz with Verstappen a further 0.3 behind.
"It's a dream come true," he said. "After your home race it's the most special race to win."
The showcase race, whose future is being increasingly questioned as Formula One expands to new venues in the Americas and Middle East, was twice red-flagged and shortened from 77 scheduled laps to 64 after running out of time.
Perez was only the third driver to win a race this season, with Verstappen winning four of the previous six and Leclerc the other two.
Verstappen, who had been chasing a fourth win in a row, now has 125 points to Leclerc's 116 with Perez on 110.
Red Bull forged 36 points clear of Ferrari in the constructors' standings.
George Russell was fifth for Mercedes, ahead of McLaren's Lando Norris and Alpine's Fernando Alonso.
Seven-times world champion Lewis Hamilton took eighth for Mercedes, with Valtteri Bottas ninth for Alfa Romeo and Sebastian Vettel 10th for Aston Martin.
The race started after more than an hour's delay, with the safety car guiding the field around for formation laps on the wet asphalt before peeling off into the pits as Leclerc led the rolling start.
The Monegasque stayed ahead until lap 18, when he pitted to change from wet tyres to intermediates and found himself behind Perez, who had come in a lap earlier and made the 'undercut' work, and Sainz.
An angry Leclerc dropped to fourth after Ferrari called him in again for slicks and then told him, too late, to stay out after Sainz also pitted and went directly from wets to the dry tyres.
Red Bull successfully double-stacked their drivers, with the order settling at Perez leading, ahead of Sainz, Verstappen and Leclerc.
The safety car was again deployed on lap 27 after Mick Schumacher crashed his Haas heavily at the exit to the swimming pool complex, the car spinning into the barriers and splitting in two.
"I'm okay," gasped the 23-year-old German, whose Ferrari great father Michael was a five-times winner in Monaco, over the car radio.
The race was then halted on the 30th lap, before a rolling re-start 20 minutes later, as marshals repaired the Tecpro energy-absorbing barrier that had been bent out of shape.
Schumacher's Danish team mate Kevin Magnussen had already retired from a surprisingly lively race, with AlphaTauri's Pierre Gasly making two strong overtakes on a track where passing is famously difficult.
Hamilton and Alpine's Esteban Ocon collided without major consequence on lap 18 as the Briton tried to pass for eighth place. Ocon was given a five-second penalty that ultimately cost him ninth place.
-Reuters