Sir Lewis Hamilton won his 100th Formula 1 race as a frantic last few laps in the Russian Grand Prix caused by heavy rain dashed Lando Norris' hopes of a maiden victory.
And the rain helped Hamilton's title rival Max Verstappen vault from seventh to second in his Red Bull after timing his change to wet tyres perfectly.
The Briton's win puts him back into the title lead but Verstappen's drive from the back of the grid in Sochi means Hamilton's advantage is only two points. Hamilton already held the record for most F1 wins with Michael Schumacher next in the all-time list with 91 victories.
The late downpour turned the race on its head and while it gave the Mercedes driver a victory, it helped Verstappen even more. Norris, who took his maiden pole position on Saturday, was leading with five laps to go in his McLaren when it started to rain.
It was light initially and only over a few corners, but Verstappen, who was at that point struggling in seventh place, was one of the first drivers to pit for treaded intermediate tyres. It was the making of his afternoon as Norris and Hamilton - more than 30 seconds up the road in their battle for the lead - initially stayed out.
A similar decision briefly vaulted Alpine's Fernando Alonso, who was leading Verstappen in sixth place before the rain, to third. Halfway around the lap following Verstappen's stop, Norris was asked if he wanted to stop for intermediate tyres and he said: "No."
Sir Lewis was also saying it was not raining that heavily, but was ordered to come in because more rain was coming. He stopped a lap after Verstappen, with four to go, leaving Norris out in front on his slick tyres as the rain fell increasingly heavily.
Hamilton was 14.9 seconds behind Norris a lap after he had stopped, but the rain was by now so bad that the seven-time champion caught the McLaren within five more corners and swept by into the lead. Norris finally stopped after tip-toeing around the rest of the lap but the delay in coming in for tyres dropped him down to seventh place at the end.
Ferrari's Carlos Sainz, who stopped for tyres at the same time as Verstappen, took third, while McLaren's Daniel Ricciardo and Mercedes' Valtteri Bottas also benefited from early stops for treaded tyres to take fourth and fifth ahead of Alonso. The error of judgement by team and driver in the late rain was a bitter blow for Norris after appearing on course for an impressive maiden victory for so long.
Starting from the back of the grid, he was ninth heading into the closing laps, two spots behind Verstappen, and was briefly up to fourth as the rain threw everything up in the air. But stopping late on the same lap as Norris meant he dropped down out of the points into 15th.
As things went from bad to worse when Alonso - who had also started on hards, but stopped 10 laps later for fresh tyres - passed him into Turn Two, Verstappen seemingly unable to do anything about reclaiming sixth place. Verstappen said that both situations were caused by the fact his tyres were worn out after spending so long in traffic.
But the rain came to his rescue. He made the call to stop for intermediate tyres at exactly the right time and was able to vault up into second, in what could be a critical move in a championship battle that is so close.
The next race, in two weeks, is in Turkish Grand Prix.