Leclerc had been on provisional pole after the opening runs of Q3 but a scruffy middle sector on his final flying lap cost him the chance to take pole, which instead went the way of Verstappen, who improved with a last-gasp effort to send his fans into party mode at a packed-out Zandvoort.
Verstappen, who is charging towards his second world title with a 93-point advantage at the top of the championship, edged out Leclerc by just 0.021s to claim his fourth pole of the season.
Ferrari’s Carlos Sainz was third and just 0.092s slower than Verstappen after saving his best lap until the end of Q3.
The Spaniard got his lap in just before Red Bull’s Sergio Perez brought out yellow flags with a spin coming out of the final corner.
That prevented the Mercedes duo of Lewis Hamilton and George Russell from improving their times.
Seven-time world champion Hamilton ended up fourth and 0.306s off the pace, ahead of Perez in fifth and Mercedes teammate Russell, who was eight-tenths down in sixth.
McLaren’s Lando Norris was seventh-fastest ahead of Haas’ Mick Schumacher, who took a strong eighth in just his fourth Q3 appearance of the season, and AlphaTauri’s Yuki Tsunoda in ninth.
A technical problem prevented Lance Stroll from taking part in just his second Q3 outing of the season, meaning the Aston Martin driver will line up from 10th on the grid.
Pierre Gasly failed to join his AlphaTauri teammate in the Q3 shootout after missing out on the top 10 by less than a tenth, ahead of the Alpine duo of Esteban Ocon and Fernando Alonso, who were dumped out in 12th and 13th.
Alfa Romeo’s Guanyu Zhou also failed to make it through in 14th, ahead of Alex Albon, who was 15th-quickest for Williams in his latest Q2 appearance.
The start of Q2 was briefly disrupted by a red flag after a flare was thrown onto the track. The FIA said the person responsible had been identified and removed by event security.
Valtteri Bottas suffered a surprise Q1 elimination after being outpaced by his Alfa Romeo teammate, and the Finn was joined in the bottom five by Haas’ Kevin Magnussen.
Daniel Ricciardo’s struggles continued as the McLaren driver could only set a time good enough for 18th, while Aston Martin’s Sebastian Vettel was knocked out in 19th after a mistake at the final corner.
The four-time world champion ran wide through the gravel coming out of Kumhobocht but still ended up a second clear of Williams’ Nicholas Latifi, who was slowest of all in 20th.