Verstappen will start from the front of the grid on Sunday after he recored a lap-time of one-minute 12.272secs to finish ahead of Carlos Sainz and Lando Norris in second and third respectively.
Despite pushing for pole in both Q1 and Q2, Hamilton could only finish fifth, with Pierre Gasly putting an impressive performance to come fourth fastest - but possible penalties for impeding could see the Frenchman tumble down the order.
It was a bizarre start to qualifying after a red flag saw Q1 brought to a halt less than five minutes into the session.
Valtteri Bottas' Alfa Romeo disappeared off the track and into the gravel. Despite the car not being beached, a red flag was waved on the session. Although confusing at first, the FIA later clarified that it was due to gravel being on the circuit.
The threat of rain during Q1 saw teams out of the garage in a hurry to try and record a banker lap. A few spots would come, but the track stayed dry with the soft slick tyre being used across the board.
Perez and Leclerc found themselves inside the bottom five with less than two minutes left on the clock. The Mexican squeaked into Q2 in 15th place but last year's pole-sitter finished in 19th place as other drivers started going faster late on.
Mercedes collide as Perez disappoints
While Hamilton and Verstappen sailed into Q3, there was huge disappointment in the other side of their garages as both Perez and Russell went out in Q2, finishing 11th and 12th respectively.
For the Silver Arrows, the tension was palpable between the Mercedes drivers. Hamilton had to take evasive action after he took to the grass while following closely behind Russell in his slip stream.
Russell shortly apologised to his team-mate, seemingly unaware he was behind him, but the 25-year-old's focus will now be on fighting his way to the front from what will ultimately be a disappointing qualifying session.
Perez also has work to do after he took a trip across the gravel on his penultimate lap of Q2. Although he was still able to put together another lap at the end of the session, it was not enough to see him join Verstappen in Q3.
Teams will now be hard at work ahead of the race itself, with plenty for the engineers and drivers alike to ponder before Sunday.
Barcelona Qualifying Results
1. Max Verstappen [Red Bull] - 1:12.272s
2. Carlos Sainz [Ferrari] - 1:12.734s
3. Lando Norris [McLaren] - 1:12.792s
4. Pierre Gasly [Alpine] - 1:12.816s
5. Lewis Hamilton [Mercedes] - 1:12.818s
6. Lance Stroll [Aston Martin] - 1:12.994s
7. Esteban Ocon [Alpine] - 1:13.083s
8. Nico Hulkenberg [Haas] - 1:13.229s
9. Fernando Alonso [Aston Martin] - 1:13.507s
10. Oscar Piastri [McLaren] - 1:13.682s
11. Sergio Perez [Red Bull] - 1:13.334s
12. George Russell [Mercedes] - 1:13.447s
13. Zhou Guanyu [Alfa Romeo] - 1:13.521s
14. Nyck de Vries [AlphaTauri] - 1:14.083s
15. Yuki Tsunoda [AlphaTauri] - 1:14.477s
16. Valtteri Bottas [Alfa Romeo] - 1:13.977s
17. Kevin Magnussen [Haas] - 1:14.042s
18. Alex Albon [Williams] - 1:14.063s
19. Charles Leclerc [Ferrari] - 1:14.079s
20. Logan Sargeant [Williams] - 1:14.699s