Reigning world champion Lewis Hamilton took advantage of a pit-stop blunder from Red Bull to belatedly claim his first win of 2016 at an absorbing Monaco Grand Prix.
As heavy rain gave way to bright sunshine in Monte Carlo, a fast-drying track provided thrilling action - with a host of differing tyre strategies used in a race that began with seven laps behind the safety car.
Pole-sitters had won eight of the previous 10 grands prix at this venue, a run Red Bull's Daniel Ricciardo looked set to extend as he opened up a healthy lead early on, with Hamilton stuck behind the slower Mercedes of team-mate and championship leader Nico Rosberg.
However, Rosberg soon allowed Hamilton past and the Briton's decision to stay out longer on wet tyres - in order to switch straight to slicks without a stint on intermediates - paid off handsomely as Ricciardo endured misery on his second stop.
The Australian came in for super-softs after 32 laps, but an apparent breakdown in communication resulted in a brief delay before new tyres could be fitted and Ricciardo re-emerged just behind Hamilton.
Ricciardo came close to regaining the lead on lap 37 as Hamilton, on the new ultra-softs, briefly left a gap only to swiftly shut the door in a move that infuriated his rival.
Yet the Mercedes man was not to be denied as he secured victory for the first time since he was crowned world champion for a third time last October, with Force India's Sergio Perez pipping Sebastian Vettel to the final podium place before the heavens opened again.
Hamilton now trails Rosberg, who came home seventh, by 24 points in the drivers' championship, while Ricciardo is up to third - both men leapfrogging Kimi Raikkonen after the Finn retired on Sunday.