Red Bull's Max Verstappen passed Lewis Hamilton's Mercedes twice to take a brilliant victory in a gripping Brazilian Grand Prix.
Behind him, the race developed into a dramatic finale as the Ferraris of Sebastian Vettel and Charles Leclerc collided while disputing fourth place.
Then, Hamilton collided with Red Bull's Alexander Albon, and Toro Rosso's Pierre Gasly held off the Mercedes for second place on the line.
It was a remarkable end to one of the most incident-packed races in recent memory. "What a race!" Verstappen said, summing it up perfectly. "Loved it."
Hamilton took the blame for his crash with Albon and was penalised after the race by five seconds, demoting him to seventh - promoting Carlos Sainz to third and giving McLaren a first podium finish since the Australian Grand Prix in 2014, 118 races ago.
Verstappen was a deserved winner in a race that he controlled from the start, but Gasly was a star, Hamilton and Mercedes had an unusually difficult race, and yet again there will be a sharp focus on Vettel's driving and character, as the four-time champion continued his battle for supremacy at Ferrari with his young team-mate.
- Brazilian GP full race results
- Verstappen wins thriller in Brazil - reaction
- 'Verstappen wins a mad Brazilian Grand Prix'
How a classic unfolded
Verstappen led away from the start, tracked by Hamilton, and Mercedes threw the first strategy dice with an early stop on lap 20, attempting to use the fresh pace of new tyres to pass the Red Bull.
It looked like it had worked when Verstappen, already touch and go as to whether he would keep the lead when he made his stop on the next lap, was held up by Robert Kubica's Williams on his way out of the pits, for which Williams were penalised.
That gifted Hamilton the lead, but Verstappen was determined to win it straight back.
Hamilton caught Ferrari's Charles Leclerc on his first lap after his stop and passed him into the final corner, but now Verstappen was right on his tail and, with his battery depleted after his fast lap, Hamilton was defenceless as the Dutchman swept around the outside into Turn One.
That looked to be it, until Hamilton's team-mate Valtteri Bottas retired with an engine problem on lap 53, bringing out the safety car.
Hamilton was told do the opposite to Verstappen as they approached the pit entry and when the Red Bull pitted, Hamilton stayed out.
But he immediately doubted the decision, worrying that his used medium tyres would be no match for the virtually new softs on Verstappen's car.
And when the race restarted on lap 60, with 11 to go, Hamilton was proved right and Verstappen swept past him into the lead - again around the outside of Turn One - despite Hamilton's best efforts to trick him at the re-start.
That was the battle for the lead done, but it was just the start of a frenetic final 10 laps...
Oh no, what do Ferrari do now?
Hamilton was now struggling at the head of a train of four cars, comprising Albon, who had brilliantly passed Vettel at the re-start, Vettel and Leclerc, all on fresher soft tyres.
The tension built, as Vettel first tried and failed to re-pass Albon, and then Leclerc, on the freshest tyres of all, pressured his team-mate.
With five laps to go, Leclerc pulled a stunning move on Vettel into Turn One to take fourth place. But Vettel refused to back off and came back at his team-mate.
Leclerc moved left on the back straight on the run to Turn Four, leaving Vettel just enough room on the outside.
But in scenes reminiscent of his collision with Red Bull team-mate Mark Webber back in Turkey in 2010, Vettel edged across and the cars collided.
The impact immediately broke Leclerc's front suspension and gave Vettel a rear puncture, and both were forced out of the race.
"What was he doing," Vettel said over team radio, before perhaps accepting his error and saying: "Sorry."
"What the hell?" Leclerc screamed.
The incident will surely have repercussions at Ferrari, where team boss Mattia Binotto has struggled to contain his warring drivers all season as Leclerc has threatened Vettel's seniority in the team.
What was Hamilton doing?
The collision brought out the safety car again and Mercedes decided to pit Hamilton for a fresh set of tyres so he could attack in the closing laps.
The race re-started with only two laps to go, with Hamilton running fourth behind Albon, and Red Bull on for a one-two, and Gasly.
He was straight past Gasly at Turn One but made a too-ambitious move on Albon at Bico De Pato and the two collided, sending Albon into a spin and damaging Hamilton's front wing.
"The gap was kind of there but it closed right at the end, clearly my fault," Hamilton said, as officials announced the incident would be investigated after the race.
Gasly passed both in the incident and Hamilton set off after the Toro Rosso again as they entered the final lap. The Mercedes was right with Gasly into the final corner and pulled alongside on the exit, but Gasly was able to edge ahead as they approached the line to take the best result of his career and a deserving reward for superlative performances since being dropped from Red Bull to Toro Rosso in favour of Albon in the summer.
Behind Sainz were the Alfa Romeos of Kimi Raikkonen and Antonio Giovinazzi, ahead of Renault's Daniel Ricciardo.
Sainz's podium was confirmed after he was cleared following an investigation for illegal use of the DRS overtaking aid while passing yellow caution flags.
It is McLaren's first podium since the 2014 Australian Grand Prix, 118 races ago.
Driver of the day
What happens next?
The final race of the season in Abu Dhabi. For all the glamour and the lights, it's an antiseptic track that seems unlikely to offer the riches of Brazil. But there have been so many great races this season, despite Hamilton's dominant title win, who would dare say there won't be another?
What they said
Max Verstappen: "Lewis was very quick so I had to keep pushing and all the time. He pitted early so we had to be on top of our pit stops we had a good move on him. I could control the race with the tyres I had it was unbelievable it was a lot of fun out there and great to win the race."
Pierre Gasly: "This is my first podium in F1 and for sure I will never forget it, it's such a special moment - so emotional. Toro Rosso have given me such a fantastic car since I've come back. It's an amazing day."
Lewis Hamilton: "Max did a great job - he was very fair the way he positioned the car. Massive apologies to Albon. The gap was there but it was completely my fault. They did a fantastic job, they outperformed us on the straights - he raced my heart out and took a lot of risks today, as you could see."