Lewis Hamilton collected his 100th Formula One victory at the Russian Grand Prix on Sunday after pipping Lando Norris to top spot.
Norris, who secured pole position and was eyeing a maiden victory, spun off the track with three laps to go as rain started to cause chaos in Sochi.
That allowed Hamilton to capitalise and sneak into a late lead to secure his century of race victories, the first F1 driver to achieve such a haul.
McLaren, who collected their first win since 2012 at the Italian Grand Prix last time out, were left heartbroken as Norris limped to a seventh-placed finish, with Max Verstappen making important ground to finish second.
Verstappen, who led the championship going into the race, had started from the back of the grid after Red Bull had a new engine installed, but he magnificently recovered to make the podium and ensure Hamilton moves into just a two-point lead.
Carlos Sainz took the lead on the first corner, with Norris, George Russell and Lance Stroll in close company.
Daniel Ricciardo, who would eventually settle for fourth, was back in fifth as Hamilton and Fernando Alonso looked to make ground on the McLaren man who was the shock Monza winner.
Verstappen, meanwhile, was climbing slowly up the grid as he overtook Valtteri Bottas and then Charles Leclerc, moving ominously through the field.
Norris' pole position looked to be paying off when Alonso and Perez had to pit, giving the 21-year-old the lead with 16 laps to go.
He had Hamilton in close company four laps later, and it appeared to be a two-car battle as the Englishmen jostled for first place.
Hamilton took the lead 11 laps later and went on to win as Norris spun out, with Verstappen coasting to his podium placing after making the smart decision to put the intermediate tyres on early.
Mercedes made the early decision to put on the inters as their rain radar suggested the wet weather was going to come before the finale.
With others choosing to stick out there and get through it, Hamilton surged into a late lead as Norris' tyres failed him, while Bottas climbed up from 17th on the grid to finish fifth to prove the Mercedes team's decision was an excellent one.
A visibly upset Norris addressed the television cameras after the race in Sochi but stood by the decision to stay out there.
The Briton battled to pole position in the adverse conditions the previous day but, for as long as Norris remains without a race win, this will resemble a missed opportunity for him and for McLaren to collect back-to-back wins after their success in Monza.
IN THE POINTS
1. Lewis Hamilton (Mercedes)
2. Max Verstappen (Red Bull) +53.271
3. Carlos Sainz (Ferrari) +1:02.475
4. Daniel Ricciardo (McLaren) +1:05.607
5. Valtteri Bottas (Mercedes) +1:07.533
6. Fernando Alonso (Alpine) +1:21.321
7. Lando Norris (McLaren) +1:27.224
8. Kimi Raikkonen (Alfa Romeo) +1:28.955
9. Sergio Perez (Red Bull) +1:30.076
10. George Russell (Williams) 1:40.551
1. Lewis Hamilton (Mercedes) 246.5
2. Max Verstappen (Red Bull) 244.5
3. Valtteri Bottas (Mercedes) 151
4. Lando Norris (McLaren) 139
5. Sergio Perez (Red Bull) 120
1. Mercedes 397.5
2. Red Bull 364.5
3. McLaren 234
4. Ferrari 216.5
5. Alpine 103
There is another two-week gap until the next race, which is the rearranged Turkish Grand Prix.