Hamilton’s first Q3 run of 1m29.549s ended up 0.023s behind Verstappen’s 1m29.526s.
On the second runs, Hamilton improved to a 1m29.383s, but crucially did not improve his personal best time in the middle sector.
Verstappen, by contrast, swept to the session’s fastest times in all three sectors on his final run, as he took pole with a 1m28.997s.
Valtteri Bottas improved on his final run in Q3 to take third in the second Mercedes, with Charles Leclerc fourth for Ferrari.
Leclerc, like Lance Stroll and Fernando Alonso, only did on run in Q3 and used his one shot to knocked AlphaTauri’s Pierre Gasly back to fifth.
Daniel Ricciardo beat his new McLaren teammate Lando Norris to sixth, with Carlos Sainz eighth in the second Ferrari.
Sainz had had a nervous moment at the end of Q1 when his engine appeared to cut out on his final run after he’d clattered over the kerbs at the exit of Turn 2 and was forced to trail slowly back to the pits.
Alonso’s F1 qualifying return resulted in ninth, with Stroll shuffled back to 10th after completing his sole Q3 run in the gap between the majority of the runners doing their first and second laps.
Verstappen, the two Mercedes drivers and Gasly will start the race on the medium tyres after getting through Q2 with a significant strategy advantage over the rest of the top 10, as the soft tyres the rest will use are likely to degrade heavily in the opening stint.
Sergio Perez’s first qualifying at Red Bull did not go to plan, as he was knocked out by Norris’s final improvement at the end of Q2.
The Mexican driver had had his first Q2 time deleted for running too wide and falling foul of the track limits policing at the exit of the Turn 4 wide right-hander, while running on the medium tyres.
He went again on the mediums at the end of Q2 and even though he went over a tenth faster than the deleted lap, other cars improving behind him meant he was shuffled out of the top 10.
Antonio Giovinazzi scored his best dry qualifying result since the 2019 Brazilian GP with P12, ahead of Yuki Tsunoda, who also could not get through Q2 on the medium tyres.
The AlphaTauri driver had finished Q1 in P2 but could not replicate his teammate’s effort on the yellow-walled rubber and was knocked out in 13th.
Kimi Raikkonen finished 15th, ahead of George Russell, who got out out of Q1 for the 10th time since the start of last season.
In Q1, a late Turn 1 spin for Haas driver Nikita Mazepin, who also spun off at Turn 13 at the start of the final sector in the early minutes of the opening segment of qualifying, cost two high-profile drivers.
A late improvement for Stroll meant Esteban Ocon was knocked out in P16 and left to rue the spun Haas in front of him at the start of his final lap – but this was still his best time and Ocon may be vulnerable to a post-qualifying stewards’ investigation that will examine all times set under the yellow flags that Mazepin’s off brought out.
Nicholas Latifi ended up 17th after setting his best time in Q1 ahead of Mazepin’s incident, while Sebastian Vettel’s difficult start to life at Aston Martin continued as he was knocked out in P18 – another driver who came across Mazepin’s car at Turn 1 on their final laps, and Vettel was came across yellows for Sainz’s slow travelling car exiting the Turn 8 hairpin.
Mick Schumacher’s improvement on his final Q1 lap boosted him ahead of Mazepin on the all-Haas final row of the grid.