Lewis Hamilton took full advantage of wet conditions late in the day to leapfrog Lando Norris and win the Russian Grand Prix.
Norris qualified on pole in Sochi and looked set to claim his maiden Grand Prix victory as the race entered its closing stages.
The McLaren driver appeared cool, calm and collected out front as he maintained a narrow one second gap back to Hamilton.
But disaster struck with just a few laps remaining as the rain came down and changed the whole complexion of the podium.
As those behind chose to dive into the puts for change of tyres, the two leaders persevered out front with their slicks.
But as the rain came down harder, Hamilton opted to twist and shot into the pits to put on a set of fresh intermediates.
The gamble paid off. As Norris continued to struggle in the rain with his slicks, Hamilton quickly closed the gap to the McLaren.
Within a matter of laps, the Hamilton found himself once again behind Norris, only this time he made his way through with ease.
Norris, unable to find any grip in the wet, slid off the track, allowing the Mercedes driver to breeze through and take the lead.
The McLaren ace then finally admitted defeat and dived into the pits, but by that point it was too late to salvage even a podium.
Out in front by himself, Hamilton assumed control of the race crossed the chequered flag to claim his 100th Grand Prix victory and regain control of the F1 Drivers’ Championship from Max Verstappen.
The rain helped Verstappen too, with the Dutchman going from seventh to second after executing his own tyre change to perfection.
It was an important result for the Red Bull driver, who started from the back of the grid after serving a penalty for an engine change.
Hamilton now leads the standings by two points ahead of the next race in Istanbul in two weeks time.
Speaking after the race, Hamilton said: “Lando did such an amazing job, he had such incredible pace. He’s doing such a great job for McLaren – this was bittersweet. It’s nice to see my old team ahead.”
Reflecting on his 100th F1 win, he added: “I want to start with thanking the fans – we have such a great crowd here. I know it’s not been the best of weather but what a race it provided!
“It’s taken a long time to get to 100 wins. I wasn’t even sure it would come. The team made such a good call at the end. I didn’t want to let Lando go. I’m incredibly grateful to all these men and women here and back in the factory. Wow, 100.
“Going to bed last night, with the job that I did yesterday, there were subtle little mistakes. I was so determined to do the best job I could. It was tough.
“Max must have done a good job to get up to second. The rain came and it was opportunistic and great call by team.”
Verstappen, who also profited by the dramatic late change in conditions, said: “With the penalty we had to only lose one spot is definitely not too bad. When I woke up this morning I definitely didn’t expect this result.
“From the back a lot of things happen in the first lap and even in the first stint with a lot of cars fighting each other. You just have to stay clean and I think we managed did that pretty well and then the crucial call to go to the inters worked out.”