Lewis Hamilton won a dramatic rain-hit Russian Grand Prix to re-take the Formula One Drivers' Championship lead by two points after pole-sitter Lando Norris was denied his first victory following a thrilling finale.

Norris, 21, appeared on course to keep Hamilton at bay and win his first ever Grand Prix.

But the race turned on its head with just eight laps remaining when the rain arrived.

Hamilton moved to the wet tyres with four laps left, but Norris stayed out on slick rubber after telling his McLaren team he did not want to stop.

However, the decision came back to haunt the young Englishman as the rain increased and he was unable to keep his McLaren on the track.

On lap 51 of 53, seven-time champion Hamilton assumed the lead with Norris having to stop for wets and dropping down the order.

Hamilton claimed the 100th win of his career, ahead of Max Verstappen, who drove from last to second, with Ferrari's Carlos Sainz, who led for the first 13 laps, completing the podium.

Norris came home in seventh, also taking the fastest lap point, with his team-mate Daniel Ricciardo fourth ahead of Mercedes' Valtteri Bottas and Alpine's Fernando Alonso.

Kimi Raikkonen (Alfa Romeo), Sergio Perez (Red Bull) and George Russell (Williams) rounded out the top 10 points scorers.

Hamilton and Norris embrace after the race in parc ferme

Hamilton who embraced Norris afterwards, said: "It has taken a long time to get to 100 and I wasn't sure whether it would come.

"Lando did such an amazing job, he is doing a great job for McLaren, and it was bittersweet to see my old team ahead.

"But my team made a great call right at the end. I didn't want to let Lando go and I didn't know what the weather was going to do. Wow. One hundred."

He added: "It would have been tough to get past Lando but the rain came and we were opportunistic. It is also a dream result for Max."