Hamilton takes 100th win late on in Russian GP after Norris spins off in rain.
Lewis Hamilton won the Russian Grand Prix after a frantic last few laps 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 Mercedes driver's 100th career win puts him back into the title lead.
Verstappen's drive from the back of the grid meant Hamilton's advantage is only two and a half points.
The late race downpour turned the race on its head and while it gave Hamilton a victory it helped Verstappen even more.
Norris, who took his maiden pole position on Saturday, was leading with five laps to go when it started to rain.
The rain started light and only over a few corners, but Verstappen, who was at that point struggling in seventh place, was one 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."
Hamilton was also saying it was not raining that heavily, but was advised 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.
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.
The 21-year-old lost the lead to Sainz at the start and tracked the Ferrari for 13 laps before re-passing for the lead.
Hamilton, meanwhile, had dropped from fourth on the grid to seventh on the first lap and he spent the first part of the race stuck in a train behind Williams driver George Russell in third, who was ahead of Aston Martin's Lance Stroll and Ricciardo.