The defending champion preserved his soft Pirellis until the closing seven laps of the 21-tour sprint contest to mount a late charge when it looked as though Leclerc was in control.
With the aid of DRS and as his Ferrari rival battled oversteer, Verstappen dived around the outside into Tamburello and kept his car on track to take the win and pole for the full GP on Sunday.
Leclerc had nailed his launch and with the kink on the main straight placing him on the inside, he could sprint past a wheel-spinning Verstappen to seize first into Tamburello.
Verstappen next had to ensure he retained second as Lando Norris threatened around the outside into the first chicane aboard his McLaren, but the defending champion held firm.
A super-aggressive Perez demoted Fernando Alonso and then lunged past Daniel Ricciardo for a quick rise to fifth, while Ricciardo in turn briefly tagged fourth-placed Kevin Magnussen in the concertina.
But the first lap was soon interrupted by a yellow flag then safety car when 14th-starting Zhou Guanyu and Pierre Gasly, who lined up in 17th, came to blows.
At the Piratella left-hander, the front right of Gasly's AlphaTauri tagged the rear-left wheel on the Alfa Romeo, which sent it spinning across the track into the inside wall.
Zhou's car suffered terminal suspension damage, while Gasly persevered with a broken wheel rim back to the pits and swapped for another set of softs to resume behind Alexander Albon in 18th.
When the safety car peeled in, Leclerc escaped without a major threat from Verstappen as the points leader swiftly established a lead a touch over 1s to remain out of DRS range.
Leclerc settled a little over the 1s threshold for three tours and then on lap seven, set what was at the time the fastest lap of the race to stretch his cushion to 1.5s over the RB18.
It looked as though Verstappen might struggle to find a reply, but then the gap began to close back under a second thanks to a series of personal best sectors for the Dutch racer.
Leclerc had not made an error, as Verstappen brought the gap below a second and then used DRS and the slipstream out of the final corner to bring the difference down to half a second.
But in his pursuit, Verstappen suffered a spike of oversteer to allow the gap to creep up to 0.8s again, before Leclerc's soft tyre began to deteriorate as he too ran wide at Villeneuve.
That brought Verstappen close out of Rivazza and gave him the slipstream, which combined with DRS, allowed him to make his move around the outside into Tamburello.
Leclerc gave his rival space at the first apex, and Verstappen kept within the painted lines to make the move stick before romping to a 1.5s lead before sealing the win by 2.9s.
Meanwhile, it was teammate Sergio Perez that could make major gains after his struggles in a wet qualifying session had him starting seventh.
The Mexican sailed past a defenceless Kevin Magnussen - both Haas drivers and Nicholas Latifi the only cars to skip softs and start on medium tyres - into Tamburello for fourth.
And Perez kept putting the slipstream out of the final corner for the run into the chicane to good use as he then copied the manoeuvre on Norris with the help of DRS to climb to third.
The second Ferrari of Carlos Sainz, starting 10th after his Q2 mistake, could make similar progress, first dispatching Alonso - who had initially struggled to leave his grid box on the formation lap - into Tamburello.
Sainz could then make a similar move on medium-shod Magnussen, then Ricciardo before eviscerating a five-second gap to Norris to pass the Briton for a fourth-placed start in the GP.
Norris led Ricciardo for a McLaren 5-6 ahead of Valtteri Bottas, a declining Magnussen and Fernando Alonso, who noticeably had to fight several spikes of oversteer.
Mick Schumacher completed the top 10 on medium tyres, as George Russell maintained his starting place of 11th ahead of a climbing Yuki Tsunoda, Sebastian Vettel and Lewis Hamilton.
Cla | Driver | Chassis | Engine | Gap | |
---|---|---|---|---|---|
1 | Max Verstappen | Red Bull | Red Bull | ||
2 | Charles Leclerc | Ferrari | Ferrari | 2.975 | |
3 | Sergio Perez | Red Bull | Red Bull | 4.721 | |
4 | Carlos Sainz Jr. | Ferrari | Ferrari | 17.578 | |
5 | Lando Norris | McLaren | Mercedes | 24.561 | |
6 | Daniel Ricciardo | McLaren | Mercedes | 27.740 | |
7 | Valtteri Bottas | Alfa Romeo | Ferrari | 28.133 | |
8 | Kevin Magnussen | Haas | Ferrari | 30.712 | |
9 | Fernando Alonso | Alpine | Renault | 32.278 | |
10 | Mick Schumacher | Haas | Ferrari | 33.773 | |
11 | George Russell | Mercedes | Mercedes | 36.284 | |
12 | Yuki Tsunoda | AlphaTauri | Red Bull | 38.298 | |
13 | Sebastian Vettel | Aston Martin | Mercedes | 40.177 | |
14 | Lewis Hamilton | Mercedes | Mercedes | 41.459 | |
15 | Lance Stroll | Aston Martin | Mercedes | 42.910 | |
16 | Esteban Ocon | Alpine | Renault | 43.517 | |
17 | Pierre Gasly | AlphaTauri | Red Bull | 43.794 | |
18 | Alex Albon | Williams | Mercedes | 48.871 | |
19 | Nicholas Latifi | Williams | Mercedes | 52.017 | |
Zhou Guanyu | Alfa Romeo | Ferrari | |||
View full results |