Leclerc will start second, with George Russell and Carlos Sainz on the second row.
Oscar Piastri will line up from eighth, one spot back from team-mate Lando Norris, while Daniel Ricciardo qualified 14th, three places behind his RB team-mate Yuki Tsunoda.
Ferrari got the session underway with early laps from Sainz and Charles Leclerc, the former baking the best time out of the gates with a 1:31.208s on a set of medium tyres.
The only other team to head out early on was Alpine, with Esteban Ocon 0.7s slower than Sainz and Pierre Gasly 1.2s off the pace, though that lap was deleted for track limits at Turn 13.
When the field did eventually crawl out on track, a traffic jam in pit exit formed, much to the frustration of Verstappen.
Times began to drop rapidly as Nico Hulkenberg went fastest with a 1:30.623s until that was beaten by Norris by 0.480s.
Behind them both, Verstappen was even faster, banking a 1:30.031s before Sainz, who’d fitted soft rubber, seized provisional pole with a 1:29.909s.
With five minutes remaining, the field began to filter out once more, with a traffic jam again forming at pit exit as they created space for their final flying laps.
In the drop zone were the two Saubers, Kevin Magnussen, and the two Alpines.
Zhou Guanyu jumped to 11th with his final lap, dumping Ricciardo into the drop zone, and Valtteri Bottas also climbed out of the bottom five in the dying seconds.
However, with much of the field still on flying laps, they progressively fell backwards.
When the chequered flag waved, Gasly was 20th, one spot back from Ocon, trailing Logan Sargeant, Zhou, and Bottas.
Qualifying 2 started even more slowly than Qualifying 1, with nobody heading out for the opening minute.
It was only after four minutes that drivers began to start their first flying laps, Piastri briefly sitting fastest with a 1:30.624s.
He was quickly shuffled back as others banked their laps, Verstappen delivering his with a sledgehammer.
The Red Bull Racing driver recorded a 1:29.374s, more than half a second faster than team-mate Sergio Perez, who’d slotted in second.
Kevin Magnussen had his initial lap deleted for track limits at Turn 7, leaving him without a time and the most vulnerable of the five drivers in the drop zone.
He was joined there by Alex Albon, Ricciardo, Tsunoda, and Hulkenberg ahead of the final Qualifying 2 runs.
All 15 remaining runners were on track in the final minute for a final attempt to progress.
It was necessary for Mercedes, who had both Russell and Hamilton in the bottom five as the chequered flag fell.
The pair had left their final runs late, the pair both escaping to condemn Magnussen, Ricciardo, Albon, Stroll, and Tsunoda.
Piastri scraped through by 0.007s in 10th, while Leclerc ended the segment fastest. Hulkenberg was also a surprise inclusion in the fastest 10.
All but Alonso took to the circuit as Qualifying 3 began.
Verstappen was the fastest to the first split and was solid through the middle of the lap before stopping the clock at 1:29.421s.
That put him provisionally fastest ahead of Russell, who recorded a 1:29.603s seconds before Verstappen had crossed the line.
However, the Mercedes driver was bumped to third when Leclerc completed his first timed lap, 0.059s slower than Verstappen.
Sainz sat fifth ahead of Norris, Perez, Hamilton, Hulkenberg and Piastri while Alonso remained in the garage.
The Spaniard finally emerged to begin his flying lap with four and a half minutes remaining, the only man on track at the time.
He was a tenth down to the first split but clawed that back in the middle of the lap to sit 0.19s up on the Verstappen’s best.
His challenge faded in the final sector, ending the lap 0.121s off the pace and only third fastest.
As he completed his lap, the remainder of the field was winding up for its last hurrah, heading by the two McLarens.
That saw Piastri encounter the two Ferraris at the start of his flying lap, though both stepped aside and didn’t hinder the Australian.
Nonetheless, he was 0.2s down to the first split, though still up on his own personal best.
That deficit remained through the second split before the Melburnian flashed across the line with a time good enough for seventh, 0.262s off Verstappen’s earlier effort.
As the chequered flag flew, Verstappen held provisional pole from Leclerc and Alonso, though the Aston Martin was bumped by Russell.
Verstappen improved on his earlier effort to set a 1:29.179s, a time Leclerc had no answer for as he ended the session second.
Sainz slotted in fourth behind Russell, with Perez fifth. Alonso ended the session sixth, then came Norris, Piastri, Hamilton, and Hulkenberg,