Bottas beat Hamilton to pole for F1's Emilia Romagna GP at Imola, with Verstappen third despite needing a rapid Q2 spark plug change.
Both Mercedes drivers and Verstappen will start the race on the medium compound rubber, giving them an expected additional strategy advantage over the rest of the top 10 runners for Sunday's race.
Hamilton had the advantage after the opening runs in Q3 had been completed on the soft rubber, with his 1m13.781s putting him 0.031s clear of Bottas despite the world champion dipping his rear wheels into the gravel exiting the final corner.
But Bottas responded on the second runs, beating Hamilton to the fastest time in the first sector by just over 0.1s, and then holding on for the rest of the lap to claim pole by just 0.097s
Verstappen wound up third but was 0.567s, with his former Red Bull teammate Pierre Gasly taking an impressive fourth for AlphaTauri.
Daniel Ricciardo was fifth for Renault, with Alex Albon sixth after a complex session containing a spin and a track limits violation – something that applied to several drivers down the grid.
Charles Leclerc was seventh for Ferrari's third home race of the revised 2020 season, ahead of Daniil Kvyat and the McLaren duo Lando Norris and Carlos Sainz, who rounded out the top 10 in Q3.
In Q2, Sergio Perez was eliminated when Albon leapt up the order with his final lap in the middle segment, after the Red Bull driver had had to switch from the mediums to softs following a spin at the exit of the Variante Alta chicane.
Esteban Ocon took 12th, ahead of Williams George Russell, who was 11th after he'd completed his final lap before being shuffled back.
But Russell will start ahead of Sebastian Vettel after the Ferrari driver lost his best time in Q2, his last flying effort, for running too wide out of Variante Alta – after he too had attempt to get through on the mediums in the early Q2 running.
Lance Stroll also lost a time for running wide at Variante Alta, but it was not his personal best in Q2 as he nevertheless ended up P15 and out.
In Q1, Bottas and Albon only jumped up the order on their final runs after losing earlier times for exceeding track limits at the exit of the Piratella corner at the top of the hill in the second sector, while Hamilton lost what would have been the segments best time for the same infraction late-on.
The Haas duo Romain Grosjean and Kevin Magnussen were the highest placed of the drivers eliminated after the opening session, with the latter running wide into the gravel trap out of the second Rivazza turn – the track's last corner.
Then came Kimi Raikkonen, who lost a lap time good enough to get through, which would have eliminated Stroll in Q1, for running wide out of exiting Variante Alta – although the Finn insisted over his team radio his "left wheels were on the kerbs".
Nicholas Latifi and home hero Antonio Giovinazzi brought up the rear of the field, with the latter setting a personal best on his final run, which was still not enough to lift him out of last place.
|3||Max Verstappen||Red Bull||1'14.176||0.567|
|6||Alex Albon||Red Bull||1'14.572||0.963|
|10||Carlos Sainz Jr.||McLaren||1'14.911||1.302|
|11||Sergio Perez||Racing Point||1'15.061||1.452|
|15||Lance Stroll||Racing Point||1'15.494||1.885|
|18||Kimi Raikkonen||Alfa Romeo||1'15.953||2.344|
|20||Antonio Giovinazzi||Alfa Romeo||1'16.208||2.599|
|View full results|