Red Bull Racing had started the weekend on the back foot with reliability problems and set-up miscalculations, giving Ferrari a head start on Friday.
But the Milton Keynes team turned things around yesterday morning with enough time to contend for pole.
Leclerc and Verstappen were closely matched after their first laps in the pole shootout, with the Monegasque up by just 0.059 seconds, and looked set to double down with his second lap.
But the Ferrari driver made a mistake at turn 10 and ran deep, losing around a tenth of a second and opening the door to Verstappen, who set a blisteringly quick time in the middle sector.
Leclerc responded with a purple final sector, but it wasn’t enough to undo his mistake, and Verstappen charged home to snatch pole position in front of his home crowd.
“Unbelievable,” he said. “It was very close. A qualifying lap around here, it was insane.
“Especially after yesterday as well - we had a difficult day, but we worked really well overnight with the whole team to turn it around.”
Leclerc said he was optimistic about his race prospects and was pleased to prove that his team’s woeful performance at last weekend’s Belgian Grand Prix was a one-off.
“We are much stronger here compared to last weekend, so that’s good to see,” he said. “Tomorrow I think our race pace looks quite strong.
“It’s going to be close with the Red Bull. We just need to do a great start, then we’ll see.”
Carlos Sainz was third and 0.092 seconds off pole, and the Spaniard lamented that a scrappy first lap left him on the back foot for his second attempt and with too much to do.
“It was a clean lap with no mistakes,” he said. “I was just missing that last half a tenth to beat Charles and Max.
“It was on the limit out there. Every little metre of track you could use or you could push on counted.
“I think in the end we did a decent job.”
Mercedes was just within striking distance of the pole battle but were forced to abandon their final laps when Sergio Perez spun his car backwards through the final corner.
Both Lewis Hamilton and George Russell were on personal-best laps until the final sector, where both had to slow.
Hamilton slipped from third to fourth between laps, ending up 0.3 seconds off the pace, while Russell was sixth and a further 0.2 seconds back, the pair split by the spun-around Perez.
Lando Norris was seventh for McLaren in an important result for the team’s hopes in the constructors standings against Alpine, for which both drivers qualified outside the top 10.
Mick Schumacher was a pleasing eighth, and the under-pressure German sounded thrilled over team radio to crack Q3.
Yuki Tsunoda was another driver forced to abandon his final lap due to Perez’s yellow flags, leaving him ninth ahead of Lance Stroll, whose Aston Martin developed a technical problem that left it unable to partake in the shootout.
Pierre Gasly was pipped by teammate Tsunoda to drop out of qualifying 11th ahead of both disappointed Alpine drivers, with Esteban Ocon ahead of Fernando Alonso.
Alonso complained over team radio that he had been blocked by Perez at turn 8, and though he did lose time through the middle sector, the stewards didn’t open an investigation.
Zhou Guanyu qualified 14th ahead of Thai driver Alex Albon.
Valtteri Bottas was 16th ahead of an underwhelming Daniel Ricciardo, who has half a second slower than teammate Norris o his way to 17th on the grid.
Kevin Magnussen was 8th for Haas ahead of Sebastian Vettel, for whom a mistake at turn 13 ruined his shot at making the top 10.
Nicholas Latifi will start 20th and last for Williams after lapping more than a second slower than the rest of the field.