Lewis Hamilton inherited victory in the Belgian Grand Prix after Mercedes team-mate George Russell was disqualified two and a half hours after taking an unlikely win on the track.
Russell pulled off an unusual one-stop strategy and held off Hamiltons attack in the closing laps.
But after the race his car was found to be 1.5kg underweight, with his team admitting to “a genuine error”.
That saw Hamilton promoted to a victory that had looked likely for much of the race – after he took the lead from Ferraris Charles Leclerc on the second lap.
Oscar Piastri is moved up to second, with Leclerc third and Max Verstappen fourth.
Russell’s car was initially weighed at 798kg, which is exactly on the minimum weight limit for car and driver combined.
But stewards found the car had not been fully drained of fuel and when it was, its weight was just 796.5kg.
Mercedes boss Toto Wolff said: We have to take our disqualification on the chin.
“We have clearly made a mistake and need to ensure that we learn from it. To lose a one-two finish is frustrating and we can only apologise to George who drove such a strong race.
“Lewis was the fastest guy on the two-stop strategy and is a deserving winner.”
Russell pips Hamilton for stunning Mercedes one-two – Belgian Grand Prix radio & text
Russell had appeared to have pulled off a remarkable victory from sixth on the grid, calling the strategy himself from the car, fending off a seven-time champion on tyres that were 15 laps fresher for five laps at the end off the race.
Hamilton was closing in at nearly a second a lap in the final laps but, as so many other drivers found, overtaking was harder than expected and he could never quite get close enough to challenge.
As Russell battled to hold off Hamilton in the final two or three laps, McLarens Piastri closed in on the Mercedes to set up a grandstand finish, and the three cars crossed the line nose to tail.
Seven seconds behind them, Ferraris Leclerc – who had been passed by Piastri with nine laps to go around the outside of the Les Combes chicane, spent the closing laps fending off Red Bulls Verstappen and the second McLaren of Lando Norris.
The three spent the final four laps nose to tail but Leclerc managed to hold his rivals at bay.
Behind Norris, Ferraris Carlos Sainz passed Red Bulls Sergio Perez with five laps to go to raise further questions about Perezs future.
Red Bull are expected to make a decision as to whether to drop him for the rest of the season over the forthcoming summer break – just two months after the Mexican signed a new two-year contract.
And dropping from second on the grid to finish at the back of the top four teams will have done Perez no favours.
No-one predicted a Mercedes victory at the start of a race that many in F1 expected to devolve into a fight between the McLaren drivers and Verstappen, even though Norris and Piastri started fourth and fifth and Verstappen 11th.
But Hamilton moved into second place past Perez on the opening lap and followed Leclerc through the first stint.
An early pit stop on lap 11 put Hamilton into the lead by undercutting his rivals – stopping before them and gaining time on fresher tyres – and he held it until his second pit stop.
Russell stopped for his set of hard tyres one lap before Hamilton, and at that stage was expecting to run a two-stop like everyone else.
But he found that degradation was much less than expected and, as the time of his second pit stop closed in, he said to the team to consider going to the end.
As he pushed on, Russell became more and more convinced of his decision, and he and the team committed.
It appeared initially as if Hamilton would catch and pass Russell, as he closed in quickly on his team-mate.
But overtaking proved to be harder than many expected and Russell was able to keep his place, up the main overtaking zone from the first corner through Eau Rouge and up the Kemmel straight to Les Combes, and he whooped with delight as he took the line – only to later be stripped of victory.
The tyre whisperer, impressed team boss Wolff had said to him over the radio.
Before news of his disqualification, Russell said: We definitely didnt predict this but the car was feeling awesome, the tyres were feeling great and I kept saying: We can do the one stop.
Hamilton said: We had such a disaster on Friday, the car was nowhere. We made some changes, it was hard to know what it would be like in the wet yesterday, and the car was fantastic today.
George did a great job going long on the tyres, every stint I had tyres left but the team pulled me in.
Piastri said he believed the McLaren did not quite have the expected pace, but he didnt help himself by overshooting his marks at his final pit stop and costing himself a couple of seconds.
Had he not done that, he would have passed Leclerc earlier with fresher tyres and been able to close sooner on the Mercedes, although passing proved difficult all day so it is a moot point whether he would have been able to pass either to win.
Behind, Leclerc drove well in the unfenced Ferrari to fend off Verstappen and Norris in the closing laps.
Verstappen had been predicted by teams strategy models to come through and win the race but he found progress harder than he might have expected.
Norris, meanwhile, lost out on the first lap when he was forced a little wide at the first corner, got onto the gravel and dropped to seventh.
Not able to pass Sainz in front of him in the first stint, he was left with too much ground to make up to join the lead battle.
Track position is king, Piastri had said as he had some free air at the front between Hamiltons final stop and his own, and that was the story of the race.
Fernando also executed a one-stop strategy to beat Alpines Esteban Ocon, while Daniel Ricciardo claimed the final point when Russell was disqualified.