Verstappen took second ahead of Valtteri Bottas, with the Dutchman getting a warning from the FIA for his defending against Hamilton at one stage, although escaping an investigation for an incident that had both title contenders going off track.
At the start, in a near repeat of the sprint race getaway, Verstappen this time accelerated better from the left-hand side of the grid and was immediately alongside polesitter Bottas, who hung on around the outside of the first corner.
But Verstappen ran the Mercedes out wide on the exit of the first part of the Senna Esses to seal the move and take the lead.
Just behind, Lando Norris got an excellent start to shoot alongside the slow-starting Carlos Sainz in third, with the McLaren going far to the right of the track as it passed the Ferrari, but as Norris drifted back left in preparation to taking the first corners, the two touch and the Briton picked up an immediate puncture.
While he ran off track and fell to the rear of the pack, Bottas’s slower trajectory through the opening corners after being nearly fully off track at the exit of Turn 1 meant Perez was able to get alongside him as they raced down the second straight.
As the braked for the downhill Turn 4 left at the end, Bottas slid wide as he could not hold his speed on the tighter line, gifting Perez third as the following Ferraris – led by Charles Leclerc after Sainz’s poor start – and Pierre Gasly also briefly shot through the Turn 4 runoff.
Verstappen had a 1.2-second lead over Perez at the end of the first tour of 71, by which point Hamilton had already gained three places in the start melee from his 10th place grid spot and then passed Sebastian Vettel to take sixth at the start of lap two.
He passed Sainz and Leclerc at the same spot in successive laps, with Bottas then ordered to pull over at the start of lap five and give his teammate third place.
But on the following tour the race was neutralised by the safety car, which was dispatched so the marshals could clear a significant amount of debris at the opening turns, which followed Lance Stroll and Yuki Tsunoda – the only driver not to start on the mediums, the AlphaTauri running the softs from the off – clashing at Turn 1 as they fought over 12th and Tsunoda losing his front wing.
The race restarted on lap 10, with Verstappen waiting until he was halfway down the grid hatchings before blasting clear, with the two Red Bulls able to stay out of Hamilton’s attack range behind.
Verstappen immediately restored his lead to 1.3s over his teammate, who had Hamilton just 0.4s behind, but the race was then neutralised by the virtual safety car as the marshals needed to clear more debris at Turn 1 – this time stemming from a clash between Mick Schumacher and Kimi Raikkonen at the rear of the pack, which the Haas with a badly damaged from wing.
The race went green again halfway through lap 14, with Verstappen’s advantage maintained and Hamilton so back at Perez’s rear once again.
The top four then quickly pulled clear of the Ferrari pair, lapping in the low-mid 1m14s with the rest back in the 1m15s and slower.
Perez asked Red Bull to get Verstappen to give him DRS as he fought to keep Hamilton at bay, but the leader continued to pull clear, his lead 2.4s at the start of lap 18.
Here, Hamilton used DRS to get a rapid run to Perez’s outside and he jumped ahead with a brilliant move late on the brakes at the plunging left-hander, but the Mexican fought back with DRS down the second straight and retook second with a similarly impressive move to the outside of that left-hander.
A lap later, with Verstappen’s lead up to 3.7s as the following pair squabbled, Hamilton made an identical move but this time Perez could not stay in his wake and the Mercedes driver was clear in second.
He initially cut Verstappen’s gap by a few tenths running in free air, but the leader then gradually responded and increased his advantage back towards the four-second mark as their mediums began to fade.
Now a two-horse race up front, Mercedes brought Hamilton in at the end of lap 26 to take the hards, with Verstappen being brought in at the end of the following tour.
Although Hamilton’s undercut advantage was reduced by having to pass Daniel Ricciardo’s McLaren, the earlier move to the fresher rubber meant he cut Verstappen’s advantage to just over a second.
After the leaders negotiated a second VSC starting on lap 30 – called for more debris falling off Stroll’s car as he raced by Nicholas Latifi down the main straight, a legacy of his earlier shunt with Tsunoda, for which the Japanese driver was handed a 10s time addition – Hamilton was running just out of DRS threat behind his title rival.
Red Bull reassured Verstappen he was continuing to be quicker in the middle part of lap, as he had all weekend, with Hamilton’s less-draggy car faster along the straights that make up most of the rest of the lap at Interlagos.
By this point Bottas was back to third as he gained by pitting under the VSC, which meant he was able to jump Perez, who had made a green-flag pitstop the lap after Verstappen.
The gap between the leaders ebbed and flowed ever so slightly over the next 10 laps, with Red Bull then pulling the trigger first to kick off the second round of stops at the end of lap 40 – Verstappen coming in to get a fresh set of hards.
Mercedes left Hamilton out for three extra laps, after which he rejoined 2.6s behind – having briefly looked like he might be left out to run long, as he was at Austin.
Hamilton was much quicker early in the third stint, setting a string of fastest laps in the low 1m12s and high 1m11s, which meant he carved into Verstappen’s lead and finally reached DRS range.
On lap 48, just after Hamilton had made a small jink to the inside of Turn 1, to which Verstappen reacted, the Mercedes was close enough to mount an attack into Turn 4.
Although Hamilton got ahead on the outside line, Verstappen fought back on the inside and steamed back towards Hamilton, the pair both going off track on the exit of the left-hander, but with the Red Bull still ahead.
The incident was noted by the stewards but they decided not investigation was necessary, which frustrated Mercedes in its broadcast discussions with race director Michael Masi.
Verstappen held his lead at just under a second over the next phase of the race – at one point weaving down the second straight, which earned him a black/white warning flag, as Hamilton had a second attack into Turn 4, this time failing to get far enough alongside the Red Bull mean Verstappen had to defend as firmly as he did before.
But on lap 59, Hamilton again forced Verstappen to react to a little look to the inside of Turn 1, which again meant the Red Bull was slower down the second straight after being on a less than ideal line through the rest of the Esses.
Hamilton was therefore much closer with DRS and this time got ahead before the braking zone, the world champion sweeping from the outside to the inside just before Turn 4 and sealing the move into first place.
He edged clear over the final 12 laps to win by 10.4s, as Bottas could not heed Mercedes boss Toto Wolff’s rallying cry to “got and get” Verstappen – the Finn finishing 3.0s behind Verstappen in third.
Perez was set to finish not far behind Bottas in fourth before Red Bull pitted him for a third time to take softs right at the end, which he used to set the fastest lap on the final tour, as behind him Leclerc led Sainz home in fifth and sixth for Ferrari – the Scuderia giving its drivers a slightly different two-stop approach with mediums for the first two stints.
Norris took the final point after his lap one time loss was negated by the safety car and he rose back to the points – aided by teammate Ricciardo retiring late-on with a power problem and Stroll also parking his car in the pits not long before Ricciardo.