Hamilton turned Verstappen's five-point championship lead into a two-point lead of his own after the Dutch driver finished second after a dramatic drive from last on the grid. Carlos Sainz led the race early on and finished third for Ferrari.
The race had plenty of echoes of Hamilton's past.
After his tough start, the British driver started moving up with a tough overtake around the outside of Fernando Alonso. They were fractious teammates and title rivals when Hamilton was a rookie in 2007. The chaotic wet finish also brought back memories from Hamilton's long record of victories in the rain.
Verstappen started last after a penalty for an engine change in his Red Bull but sliced through the field and had Hamilton in sight by the halfway stage. Hamilton's Mercedes worked better on the hard tires in the second half of the race and Verstappen's charge seemed to have stalled when he was overtaken by the Alpine of Alonso and stuck in seventh.
But then the rain came and Verstappen switched to intermediate tires early, allowing him to claim an unexpected podium finish and limit the damage to his hopes of a first title.
"We didn't lose so many points today, so that's really, really good," Verstappen told his team over the radio. One key question for the rest of the season is whether Hamilton too will need to use an extra engine and take a penalty.
Verstappen's verdict on his title chances? "Fifty-fifty."
Hamilton too predicted a close fight. "Undoubtedly, it's going to be tough. I think for the two-thirds of the season so far (Red Bull) had the edge," he said. "However, it's been difficult with all sorts of things, curveballs sent to both of us and our teams. It's still everything to play for in these next races."
It doesn't take much rain to make a difference in Sochi, where the flat track means water builds up on the surface.
Norris finally finished seventh after his failed gamble to stay on dry tires despite warnings from his team about how slippery the track was becoming. If not for the rain, Hamilton said, "it would have been tough to get past Lando. He had great pace." Norris had been aiming to give McLaren back-to-back wins after Daniel Ricciardo took victory at the last race in Italy when Hamilton and Verstappen collided.
Hamilton has now won the Russian Grand Prix on five of eight occasions, and his victory Sunday continues a clean sweep of victories in Russia for Mercedes.
Ricciardo narrowly missed the podium for McLaren in fourth and Hamilton's teammate Valtteri Bottas was fifth after an eventful race for the Finn. Mercedes' decision to swap the engine in Bottas' car and take a penalty prompted speculation the team was deploying Bottas to hold up Verstappen, something the team denied. Regardless, it didn't take long for Verstappen to swoop past Bottas.
Alonso was sixth for Alpine, ahead of Norris and Alfa Romeo's Kimi Raikkonen. The second Red Bull of Sergio Perez was ninth and George Russell took the last point for Williams in 10th. Russell qualified third and held up the cars behind โ including Hamilton, his teammate next year at Mercedes โ for much of the early part of the race.