Hamilton stormed to pole for F1's 2020 Belgian GP ahead of Bottas with a new Spa track record, with Verstappen close behind in third.
Both Mercedes and Verstappen will start the race on the medium tyres as they were able to get through Q2 on what is a better race tyre than the red-walled softs the rest of the top 10 will start on in a dry race.
Ferrari managed to avoid losing a driver in Q1, but Charles Leclerc and Sebastian Vettel were both eliminated in the next segment, one year on from the former taking pole at Spa.
When it came to Q3, Hamilton led the way after the opening runs with a 1m41.451s – a new track record for the time, while Bottas had time to make up after locking up and running wide on the large kerb at the exit of La Source.
But while Bottas was able to improve early on the final runs on the soft tyres in Q3, Hamilton went even faster – setting personal best times in the first and third sector, and going fastest of anyone in the middle part of the track, where Mercedes has been dominant all weekend.
The world champion's last lap looked in control all the way around as he blasted to a 1m41.252s to improve the best time.
Running behind, Bottas lost time all around his final lap and wound up 0.511s adrift.
Verstappen was left frustrated to finish just 0.15s behind Bottas, complaining that he ran out of battery energy at the end of his final lap.
Daniel Ricciardo will start fourth after Verstappen's last-gasp lap pushed him down one spot, with the Renault driver abandoning his final effort.
Alex Albon put the second Red Bull fifth ahead of Esteban Ocon, who found enough time with the session's final flying lap to deny Carlos Sainz Jr P6 for McLaren.
Sergio Perez and Lance Stroll took eighth and ninth after only completing one run in Q3, while Lando Norris rounded out the top 10 after setting a personal best on his last run but not finding enough time to move up the order.
Personal best times were not enough to save Daniil Kvyat and Pierre Gasly from elimination in Q2, as the Racing Point drivers gained significantly from their first attempts to get through the middle segment on the medium tyres.
Stroll and Perez jumping up the order from P11 and P12 after the first runs ultimately did for the AlphaTauri's despite their own improvements, which meant they ended up in the positions just outside the top 10.
Both Ferrari's were ultimately knocked out in Q2 for the first time in 2020, with Leclerc heading Vettel in P13.
George Russell again got his Williams into Q2, but abandoned his first run, with his second good enough only for P15 after the Ferrari's found time on their second efforts.
In Q1, Vettel was under pressure to improve after he sat 19th after the first runs had been completed, but the danger of both works Ferrari's being knocked out in the opening segment remained.
A battling warm-up lap for the drivers still needing to improve to progress left both Vettel and Leclerc having to run without a tow at the head of a pack of cars.
But they still managed to improve enough to get through to Q2, with Vettel jumping up six spots, although Leclerc had a nervous wait as he was shuffled down to P15, complaining later about the lack of a tow.
The top four drivers knocked out in Q1 all set personal bests, but Kimi Raikkonen, Romain Grosjean, Antonio Giovinazzi and Nicholas Latifi could not match the delighted and surprised Russell in splitting the Ferraris.
They will start P15-P19, with Kevin Magnussen last in the second Haas after his final run was ruined by a long trip through the Stavelot gravel trap, where he nearly ran into the wall to his left as he struggled to slow his car.
|3||Max Verstappen||Red Bull||1'41.778||0.526|
|5||Alex Albon||Red Bull||1'42.264||1.012|
|7||Carlos Sainz Jr.||McLaren||1'42.438||1.186|
|8||Sergio Perez||Racing Point||1'42.532||1.280|
|9||Lance Stroll||Racing Point||1'42.603||1.351|
|16||Kimi Raikkonen||Alfa Romeo||1'43.743||2.491|
|18||Antonio Giovinazzi||Alfa Romeo||1'43.950||2.698|