Max Verstappen won the Brazilian Grand Prix as Ferrari's Sebastian Vettel and Charles Leclerc crashed out following a dramatic finish.
Toro Rosso driver Pierre Gasly finished a surprise second after he took advantage of Lewis Hamilton banging into Alex Albon on the penultimate lap.
Hamilton, with damage to his car, took the flag in third, but his podium is subject to a post-race investigation.
Verstappen, out to seek revenge at Interlagos 12 months after he was punted out of the lead by backmarker Esteban Ocon, looked to have been denied another victory here after Robert Kubica almost collided with his Red Bull during the first round of pit stops.
Verstappen slammed on the brakes to avoid hitting the Williams and ending up in the wall, allowing Hamilton to get the jump on the Red Bull.
But in a spellbinding 75 seconds, Verstappen fought his way past Ferrari’s Leclerc and then latched on to the back of Hamilton’s Mercedes before diving underneath the world champion at the opening bend.
Verstappen’s skills were tested for a second time when the safety car was deployed after Valtteri Bottas’s Mercedes engine conked out.
Red Bull opted to pull Verstappen in from the lead to give their driver fresh rubber for the remaining 15 laps. Hamilton, running in second, was told by his Mercedes team to stay out if Verstappen stopped.
But the Englishman, on old tyres, was a sitting duck for the speedy Verstappen, who used Hamilton’s tow before sailing around the outside of the Mercedes at the first corner after the safety car pulled in.
The Ferrari drivers then sensationally collided as they diced for fourth place. Leclerc had just passed Vettel at the Senna Esses, but on the run down to the left-handed fourth corner, the German appeared to cut across his team-mate. Both sustained terminal damage, before pointing the finger at one another in a series of furious radio outbursts.
That led to a third safety car period. Hamilton took on fresh tyres, dropping him to fourth. He immediately drove past Gasly at the restart but then collided with Albon in the battle for second, denying the London-born Thai his first podium. He would finish out of the points in 14th.
“I massively apologise to Albon,” Hamilton said. “The gap was there but it closed at the end. It was definitely my fault.
“I raced my heart out and left nothing on the table. I took a lot of risks today.”