Verstappen was in complete control of the race after passing both Mercedes and both Ferrari cars in a superb performance at the Interlagos circuit.
But it was Lewis Hamilton who claimed the 10th victory of his championship-winning campaign, after Verstappen was taken out of the lead when attempting to lap Force India’s Ocon.
Ocon, running way down the order, bizarrely raced wheel-to-wheel at 200mph with the leader before banging into the right-rear of Verstappen’s car through the Senna Esses.
The force of the hefty impact on lap 43 sent Verstappen into a spin, and with the Dutchman facing the wrong way, Hamilton sailed by to resume the lead.
Verstappen was now five seconds down on Hamilton, and – with a wounded car – he was unable to claw the Mercedes back in before he finished in second.
Ocon was hit with a 10-second stop-and-go penalty, the most severe punishment available to the stewards, but it will come as little consolation to a furious Verstappen.
Kimi Raikkonen finished third for Ferrari, but it was not enough to stop Hamilton’s Mercedes team from winning their fifth-consecutive constructors’ championship.
Hamilton started from pole position and made no mistake from his starting blocks as he won the race to the uphill opening left bend.
Behind, Sebastian Vettel got a decent getaway, too, but locked up his front-left tyre and lost second place to Valtteri Bottas.
It would be the precursor to a rotten afternoon for the German after he finished only sixth.
It was not long before Verstappen, the winner in Mexico a fortnight ago, was on the move from fifth on the grid.
On lap three, Verstappen launched a charge down the inside of Raikkonen at Turn 1 before producing the same move on Vettel a little over 60 seconds later.
The Red Bull star was on a flyer, and it did not take him long to get the better of Bottas, sailing past the Silver Arrows at Turn 1.
Hamilton’s lead was steady, a little more than two seconds clear of Verstappen, but the British driver was the first of the frontrunners to stop for fresh tyres, boxing for new rubber on lap 19.
Verstappen took the lead of the race but – despite failing to build up enough of a margin to leapfrog Hamilton during his change for tyres – the Dutchman did his talking on the track, comfortably dashing past Hamilton on the main straight with 31 laps to go.
That looked to be that, but just four laps later, the result dramatically turned on its head when Verstappen was swiped out from the lead by Ocon.
Verstappen was furious and he yelled over the radio: “What a f****** idiot.”
“I don’t know what to say,” the Red Bull driver said after the chequered flag.
“I hope I can’t find him now in the paddock,” he added, followed by a series of bleeped-out expletives.
Despite a brave fightback from vVrstappen, Hamilton picked up the pieces to triumph for a second time in Brazil, and a decade on from winning his first of five championships.
Daniel Ricciardo took fourth for Red Bull ahead of Bottas and Vettel.
Lewis Hamilton will start the first race of his championship parade from pole position after he avoided sanction for a near-miss during qualifying for the Brazilian Grand Prix.
On virtually the identical piece of Interlagos tarmac where he passed Timo Glock to sensationally win his maiden title here a decade ago, there was further drama for Hamilton on Saturday.
At first, it appeared as though the Mercedes star was at fault. In attempting to jump out of Sergey Sirotkin’s way, he inadvertently drove into the Russian’s path with the pair only inches away from a 150mph shunt.
Sirotkin turned sharply to his left, narrowly avoiding Hamilton’s Silver Arrows, before running over the grass on the exit of Turn 11.
Given the speed at which Sirotkin approached Hamilton’s Mercedes, the initial evidence suggested the Williams driver was on a flying lap, and Hamilton was caught napping.
But both parties later confirmed that the rookie Russian was, like Hamilton, only preparing for a speedy run.
As such, Hamilton was not summoned to the stewards, with the five-time world champion instead pointing the finger at Sirotkin for reckless driving.
“As far as I was aware no driver behind me was on a quick lap,” Hamilton said.
“I was making sure I had the gap to the driver in front, but then all of a sudden I saw a car coming out of Turn 11 at high speed so I was like ‘oh my God is that someone on a flying lap?’
“I moved to the left and that was where he decided to go. He wasn’t on a quick lap so I don’t know what his thinking was.
“It was quite a disrespectful move in the sense that it was dangerous. It was kind of strange and completely unnecessary.”
Hamilton’s high-speed run-in with the Williams came during the second phase of qualifying as drops of rain threatened to have an impact on the result.
In the end, the wet weather stayed away, and Hamilton did what he always seems to do, pulling a lap out of nowhere to claim his 10th pole of the season when it was Ferrari and Sebastian Vettel who seemed to hold the advantage.
Vettel qualified second, just 0.093 seconds adrift of Hamilton, and late on Saturday evening avoided a penalty for the race despite bizarrely losing his cool when he was called to the weighbridge in his Ferrari.
Keen to get back on track in the fight for pole, Vettel angrily gesticulated with the officials before he drove off at speed and broke the scales.
“They shouldn’t call us when the conditions are changing like that,” Vettel said. “It’s unfair and I wanted them to hurry up.”
The German was handed a £22,000 fine and a reprimand, but stays on the front row alongside Hamilton.
Valtteri Bottas starts third for Mercedes as the Silver Arrows bid to become only the second team in history to win five consecutive constructors’ championships.
Ferrari must outscore them by 13 points on Sunday to take the team fight on to the final race in Abu Dhabi. Vettel’s team-mate Kimi Raikkonen qualified fourth.
It is 12 long years since Fernando Alonso won the last of his two titles at Interlagos, but in the penultimate race of an F1 career which has fizzled out since he re-joined McLaren in 2015, the Spaniard finished a miserable 18th.
The year started with great hope for the Woking marque after they pushed through a divorce from Honda to team up with Renault power.
But Britain’s most decorated Formula One outfit – indeed the team to have won more races in Brazil than any other – are in freefall with Alonso’s team-mate, Stoffel Vandoorne, last of the 20 runners.
Formula One has reached a deal to stage a race on the streets of Vietnam’s capital city.
The grand prix, which will take place in Hanoi, has been mooted for some time, but was officially confirmed by F1 officials on Wednesday.
The street race will be staged from 2020 onwards and it becomes the first new addition to the calendar in the post-Bernie Ecclestone era.
Earlier this year, F1’s American owners’ Liberty Media were forced to put plans for a race in Miami on hold after opposition from local groups.