Hamilton dropped to seventh place when he was boxed in at the first corner but fought back and passed Lando Norris for the win when the McLaren driver stayed out on slick tires in late rain and slid off the track.
“It’s taken a long time to get to 100 and at times, I wasn’t sure it would come,” Hamilton said. It was Hamilton's fifth win of the season and his first since the British Grand Prix in July.
“It’s a magical moment,” Hamilton said. “I could only have dreamed of still being here and having this opportunity to win these races and get to drive with such phenomenal talents this late in my career.”
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.
After his tough start, Hamilton started moving up with a tough overtake around the outside of Fernando Alonso, a duel with echoes of their season as teammates when Hamilton was a rookie in 2007.
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.
It doesn't take much rain to make a difference in Sochi, where the flat track means water is slow to drain away.
Norris trailed in 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 cars.
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.