Max Verstappen has won a frenetic Brazilian Grand Prix after a late Safety Car prompted a two lap dash to the flag.
A clash between Ferrari team-mates Sebastian Vettel and Charles Leclerc took them both out of the race and drew the Safety Car to set up the incredible finale.
Verstappen skipped clear at the restart as Hamilton, running fourth, quickly moved by Pierre Gasly to take third.
He then battled with Alex Albon, the pair coming together at the hairpin midway around the penultimate lap.
The contact pitched Albon off the road while delaying Hamilton enough for Gasly to race by, the Frenchman then defending hard in the final lap as Hamilton recovered to ultimately beat the Briton in a drag race to the chequered flag.
At the flag there was less than a tenth of a second between the pair, with Gasly ahead though Hamilton was put under investigation for his part in the Albon spin.
At the race start, Verstappen held the lead off the line while Hamilton made a move around the outside of Vettel to claim second.
The opening stanza of the race passed largely without incident, Vertsappen building a small but comfortable advantage of just over two seconds when he took service for the first time.
Pitting a lap earlier, on Lap 20, Hamilton used his fresh tyre advantage to come close to leapfrogging the Red Bull driver, who stopped next time around.
However, traffic late on his out lap hindered his progress when he caught the yet-to-stop Leclerc which looked to have scuppered his chances of taking Verstappen during the pit sequence.
Verstappen though came across Robert Kubica, who was released from the Williams box as Versatppen was exiting the lane, leaving the Dutchman no option but to follow down the long pit exit.
Having to fight Leclerc to find a way through, when Hamilton eventually did so he was followed by Verstappen, who quickly got by the race leader at Turn 1.
The second round of stops began on Lap 43, Mercedes again the first to roll the dice with Red Bull reacting on the following tour.
From there the duo ran in formation until a Safety Car was deployed when Valtteri Bottas was forced to pull his Mercedes off the road.
While Hamilton chose to stay out, Verstappen took the opportunity for a new set of tyres, relinquishing first place in the process.
At the restart that saw Verstappen second behind Hamilton, and Vettel third from Albon and Leclerc, whose tyres were only a handful of laps old prior to the Safety Car’s interruption.
A slow restart from Hamilton still saw Verstappen make a move around the outside of the opening corner, hanging it out to then move back into the lead through the middle of the complex.
Albon was similarly aggressive with his move on Vettel before having to go defensive against the German at Turn 4.
Hamilton, Albon, and Vettel then all found themselves engaged in a scrap for second, Vettel sending it around the outside of Turn 1 with seven laps to run, but unable to make the move stick.
Leclerc then found a way through on Vettel, taking the inside line into the first corner, the latter launching an immediate counter-attack as they headed down the hill and along the back straight.
Tucked up in the slipstream, Vettel moved out to pass as Leclerc moved to cover, the resulting contact taking both out of the race.
Through the drama Gasly had risen through the field, taking third when Hamilton elected to pit under the Safety Car brought about by the Ferrari melee.
It saw Verstappen leading Albon, Gasly, and Hamilton at the restart.
The Mercedes driver quickly move by Gasly as the field headed into Turn 1, before contact midway around the lap with Albon dropped him to third.
Having left the door open at the hairpin in the infield section, Hamilton made the move which resulted in a locked brake and contact.
It spun Albon out of second place, dropping him to 15th, while Hamilton picked up damage to his front wing while he was delayed.
Gasly picked his way through the drama to move to second, with Hamilton getting on the gas quickly enough to maintain third.
A defensive final lap from Gasly then resulted which saw the Toro Rosso driver win a drag race with the Mercedes to the line to claim his maiden podium.
Verstappen claimed a comfortable victory in the end, his third of the season, while Gasly’s result is Toro Rosso’s second podium in 2019.
In fourth was Carlos Sainz (McLaren) ahead of the two Alfa Romeos, Kimi Raikkonen ahead of Antonio Giovinazzi.
Then came Daniel Ricciardo (Renault), Lando Norris (McLaren), Sergio Perez (Racing Point), and Daniil Kvyat (Toro Rosso).
Further down the order, Nico Hulkenberg picked up a five second penalty which left the Renault 15th at the flag after being judged to have passed under Safety Car conditions.
Aside from Bottas and the two Ferraris, Lance Stroll and Robert Kubica failed to finish, though both were classified in the final results.
Formula 1 next moves to Abu Dhabi for the final race of the 2019 season on November 29-December 1.
Race results: Brazilian Grand Prix Updated
Pos | Num | Driver | Car | Laps | Time/Retired |
1 | 33 | Max Verstappen | Red Bull Racing Honda | 71 | 1:33:14.678 |
2 | 10 | Pierre Gasly | Scuderia Toro Rosso Honda | 71 | +6.077 |
3 | 55 | Carlos Sainz | McLaren Renault | 71 | +8.896 |
4 | 7 | Kimi Räikkönen | Alfa Romeo Racing Ferrari | 71 | +9.452 |
5 | 99 | Antonio Giovinazzi | Alfa Romeo Racing Ferrari | 71 | +10.201 |
6 | 3 | Daniel Ricciardo | Renault | 71 | +10.541 |
7 | 44 | Lewis Hamilton | Mercedes | 71 | +11.139 |
8 | 4 | Lando Norris | McLaren Renault | 71 | +11.204 |
9 | 11 | Sergio Perez | Racing Point BWT Mercedes | 71 | +11.529 |
10 | 26 | Daniil Kvyat | Scuderia Toro Rosso Honda | 71 | +11.931 |
11 | 20 | Kevin Magnussen | Haas Ferrari | 71 | +12.732 |
12 | 63 | George Russell | Williams Mercedes | 71 | +13.599 |
13 | 8 | Romain Grosjean | Haas Ferrari | 71 | +14.247 |
14 | 23 | Alexander Albon | Red Bull Racing Honda | 71 | +14.927 |
15 | 27 | Nico Hulkenberg | Renault | 71 | +18.059 |
16 | 88 | Robert Kubica | Williams Mercedes | 70 | +1 lap |
17 | 5 | Sebastian Vettel | Ferrari | 65 | DNF |
18 | 16 | Charles Leclerc | Ferrari | 65 | DNF |
19 | 18 | Lance Stroll | Racing Point BWT Mercedes | 65 | DNF |
NC | 77 | Valtteri Bottas | Mercedes | 51 | DNF |
Fastest lap: Valtteri Bottas
Drivers’ championship Updated
Pos | Driver | Pts |
1 | Lewis Hamilton | 387 |
2 | Valtteri Bottas | 314 |
3 | Max Verstappen | 260 |
4 | Charles Leclerc | 249 |
5 | Sebastian Vettel | 230 |
6 | Pierre Gasly | 95 |
7 | Carlos Sainz | 95 |
8 | Alexander Albon | 84 |
9 | Daniel Ricciardo | 54 |
10 | Sergio Perez | 46 |
11 | Lando Norris | 45 |
12 | Kimi Räikkönen | 43 |
13 | Nico Hulkenberg | 37 |
14 | Daniil Kvyat | 35 |
15 | Lance Stroll | 21 |
16 | Kevin Magnussen | 20 |
17 | Antonio Giovinazzi | 14 |
18 | Romain Grosjean | 8 |
19 | Robert Kubica | 1 |
20 | George Russell | 0 |
Constructors’ championship Updated
Pos | Team | Pts |
1 | Mercedes | 701 |
2 | Ferrari | 479 |
3 | Red Bull Racing Honda | 391 |
4 | McLaren Renault | 140 |
5 | Renault | 91 |
6 | Scuderia Toro Rosso Honda | 83 |
7 | Racing Point BWT Mercedes | 67 |
8 | Alfa Romeo Racing Ferrari | 57 |
9 | Haas Ferrari | 28 |
10 | Williams Mercedes | 1 |