Leclerc started from pole and got the perfect getaway to lead cleanly into the first turn, but Verstappen, starting alongside him on the front row, fell into anti-stall and was swallowed up the grid, falling to seventh.
Bottas followed the leading Ferrari into the first turn with Hamilton close in tow; they held this order for the first stint at two-second intervals, none willing to burn through their tyres unnecessarily early in the sweltering conditions.
There was no such conservation from Verstappen, who was now following sixth-placed Sebastian Vettel scything up the field towards the frontrunners. By lap nine they were fourth and fifth and looking for a way to break back into the fight for the lead.
The opportunity came on lap 21. Mercedes was keen to flex its two-on-one numerical advantage against Leclerc and stopped Bottas for new tyres, and Ferrari attempted to cover him immediately with Vettel on the same lap – but a communication issue meant the German’s mechanics weren’t ready with for the change.
Vettel lost more than three seconds waiting for his tyres and consequently fell back into the midfield, neutering his challenge.
Leclerc stopped the following lap, comfortably covering Bottas and leaving Hamilton to inherit the lead. The Mercedes driver radioed his team to confirm his tyres were good to run deep into the race as planned, but he shortly began to slow – the Briton had picked up damage to his front wing when running wide over some kerbs and needed a new nose cone.
He was brought in on lap 30 and fell to fifth, almost 30 seconds off the lead. His race, for a time looking likely to pay great dividends, was effectively over.
Verstappen inherited the lead next and made his stop on lap 31. He emerged from the pits in fourth behind Vettel but with tyres 10 laps younger, and with that fresher rubber he set about closing the gap with devastating effectiveness.
By lap 46 he was duelling with Vettel, relieving him of his podium place on lap 50 by overpowering him on the stretch between turns three and four.
Bottas was next up the road, his Mercedes wheezing in the heat and unable to cool itself. The Dutchman made quick work of the slowed Finn on 56, powering alongside him in the braking zone at turn three and seizing position.
Leclerc was now unprotected in the lead. He was given the hurry-up by his team – “Leave me alone,” came the curt reply – but Verstappen’s pace advantage was irresistible.
On lap 68 the Red Bull Racing driver tested the waters at his favoured turn three, but his Ferrari rival gamely held on around his outside and made an unlikely success of beating him into turn four.
But there was no defending against the determined Verstappen the following tour. He again rocketed up Leclerc’s inside at turn three, but this time he ensured the red car was run out of room on exit. Charles was forced off the track and into submission, leaving Max to power away and take the chequered flag to score a classic win.
“Wow!” the ecstatic Verstappen exclaimed. “After that start I thought the race was over, but we just kept pushing hard.
“After the pit stop we were flying – you could see on the straight we had good pace as well.”
Verstappen paid credit to engine supplier Honda, for whom the Dutchman scored the first win since it returned to the sport in 2014.
The Japanese company struggled in its early years partnered with McLaren, but its tie-up with Red Bull Racing this season has allowed it to demonstrate the progress made since then, as the tearful Toyoharu Tanabe, Honda’s technical director, attested on the podium.
“I’m extremely happy for the whole team and also for Honda,” Verstappen said. “We just started working together this year, but to win here is incredible.”
The victory was not without controversy, however, with the race-winning move past Leclerc drawing the attention of the stewards. A post-race investigation was conducted, but the Dutchman was cleared of unfairly running his rival off the track after three hours of deliberation.
Opinion was immediately split, and Verstappen made clear he had no regrets about the move.
“If those things are not allowed in racing, then what’s the point of being in Formula One,” he asked rhetorically. “It’s hard racing, otherwise you have to stay home.”
Leclerc, however, who was for the second time forced to watch his chance at a maiden F1 victory slip away in the final laps of a race, was adamant that the move was outside the boundaries of fair racing.
“For me it was pretty clear in the car,” he said. “We touched and I had to go wide and then obviously I didn’t have any chance to pass back, so it’s a shame.”
Valtteri Bottas collected the final podium place to take a small bit from Hamilton’s championship lead, closing to 31-point deficit, but the Finn said he felt helpless trying to race with a compromised car.
“I think we made the most of it, but it was a bit more difficult than we expected, especially with the overheating of the engine,” he said. “We couldn’t really race properly; we had to manage all the temperatures.”
Vettel finished fourth ahead of Hamilton in fifth as the last of the cars to finish on the lead lap.
McLaren’s Lando Norris was outstanding to finish sixth having spent the final part of the race rebuffing Red Bull Racing’s Pierre Gasly, whose bad weekend was made more painful by being lapped by teammate Verstappen as he launched his attack for the lead.
Carlos Sainz finished eighth in the sister McLaren ahead of Alfa Romeo teammates Kimi Raikkonen and Antonio Giovinazzi.