Red Bull's Max Verstappen from the Netherlands passed Charles Leclerc with two laps remaining to win a thrilling Austrian Grand Prix.
The win was only confirmed three hours after the race finished following an investigation into whether Verstappen unfairly ran Leclerc off the track.
Ferrari's Leclerc seemed in control of the race after Verstappen made a bad start to drop from second to seventh.
But Red Bull pitted Verstappen 10 laps later than Leclerc and Verstappen fought up from fourth to take the win.
It was a sensational drive from Verstappen, making superb use of fresher tyres than the cars in front of him, but the move with which he took the lead was controversial.
Leclerc had already fought off one pass by Verstappen on the previous lap, when the Red Bull got inside the Ferrari at Turn Three but Leclerc held on around the outside and out-accelerated him up to Turn Four.
But on the next lap, with two to go, Verstappen again dived up the inside, and this time he ran Leclerc off the road on the exit.
On the incident with Leclerc, he said: "It's hard racing or we have to stay home. If those things are not allowed in racing then we have to stay home."
Leclerc said: "The race was good. At the end I had a bit more [tyre] degradation than I thought so Max came back.
"On the incident, I will let the stewards decide. I was on the outside, like the lap before – which was perfectly fine, he left a car space – but he didn't on that lap and he pushed me wide so I didn't have the chance to fight back. It's a shame."
After both drivers were called before the stewards, the FIA, after lengthy deliberation, confirmed the result would stand.
A statement read: "In the totality of the circumstances, we did not consider that either driver was wholly or predominantly to blame for the incident. We consider that this is a racing incident."
It brings to an end Mercedes' run of eight consecutive wins this season – a run that actually stretches back two races further, to last year's Brazilian Grand Prix.
The incident comes just two races after Ferrari's Sebastian Vettel lost victory in the Canadian Grand Prix after being found guilty of dangerous driving against Mercedes' Lewis Hamilton.
That caused a huge controversy – and this will inevitably do the same.
The two incidents were not the same – Vettel was rejoining after going off the track, while Verstappen was passing for the lead.
But what Verstappen viewed as "hard racing", others will judge as forcing a rival off the track.
There will also be questions as to whether, with his pace advantage, Verstappen needed to pass in such style, and whether he might not have been better advised to avoid the risk of an inquiry and give Leclerc more space.
Immediately after the incident, Verstappen had gone on to the radio to say: "He turned into me." And was told by his engineer Gianpiero Lambiase: "There was nothing wrong with that, mate."
Leclerc said to his team: "What the hell was that?"
Verstappen's was a superb drive, one that delivered engine manufacturer Honda its first grand prix win since Jenson Button's victory in Hungary in 2006.
His race looked lost when he dropped back at the start – because his anti-stall kicked in for reasons Red Bull said they could not explain – but he wasted no time in making up lost ground.
By lap nine, he had passed McLaren's Lando Norris and Alfa Romeo's Kimi Raikkonen to move into fifth place, behind Leclerc, the two Mercedes of Valtteri Bottas and Hamilton, and Vettel.
Vettel and Bottas stopped first, on lap 21, followed by Leclerc on lap 22, leaving Hamilton and Verstappen out on medium tyres intending to run long to give themselves a tyre advantage in the later stages.
But Hamilton wrecked his chances by damaging his front wing, requiring it to be changed when he stopped on lap 30, and when Verstappen stopped a lap later, he rejoined 3.5secs behind Vettel, who lost time a slow stop when Ferrari did not have the tyres ready. Bottas was five seconds further up the road, and Leclerc four seconds ahead of him.
Verstappen drove carefully to protect his tyres early started to pile on the pressure, first catching Vettel before passing him on lap 50, then dispatching Bottas on lap 56 before chasing after Leclerc.
Mercedes were also battling overheating issues in the high temperatures, which forced them to temper their pace to protect the engine.
How they finished.
1 Netherlands Max Verstappen Red Bull
2 Monaco Charles Leclerc Ferrari
3 Finland Valtteri Bottas Mercedes
4 Germany Sebastian Vettel Ferrari
5 Great Britain Lewis Hamilton Mercedes
6 Great Britain Lando Norris McLaren
7 France Pierre Gasly Red Bull
8 Spain Carlos Sainz Jnr McLaren
9 Finland Kimi Raikkonen Alfa Romeo
10 Italy Antonio Giovinazzi Alfa Romeo
11 Mexico Sergio Perez Racing Point
12 Australia Daniel Ricciardo Renault
13 Germany Nico Hulkenberg Renault
14 Canada Lance Stroll Racing Point
15 Thailand Alexander Albon Toro Rosso
16 France Romain Grosjean Hass
17 Russia Daniil Kvyat Toro Rosso
18 Great Britain George Russell Williams
19 Denmar Kevin Magnussen Hass
20 Roland Robert Kubica Williams