Verstappen beat George Russell to top spot by 0.236 seconds to claim his second pole of the year and 22nd of his career.
Verstappen's Red Bull team-mate Sergio Perez starts last after he crashed out.
Mercedes have endured a poor start to the new season, but the Silver Arrows suddenly find themselves in contention for a surprise victory at Melbourne's Albert Park with Russell leading their charge.
Hamilton was just nine thousandths adrift of Verstappen before the final runs, but preparations for his last lap were disrupted when he got caught up behind Haas' Nico Hulkenberg.
Although the seven-time world champion improved on his time, he was unable to join Verstappen on the front row with Russell edging out his team-mate by one tenth.
"Not too shabby," said a surprised Russell on the radio.
"We were not expecting that, that is for sure," he later added. "Wow, what a session for us. The car felt alive. The lap on the end was on the limit, and I am disappointed we didn't get pole."
Hamilton added: "I am so happy with this. This is totally unexpected and I am really proud of the team.
"To be on the front row is a dream for us. To be this close to Red Bull is incredible. I hope tomorrow we can give them a run for the money.
"The second lap was not as good as the first. I lost out a little bit at the beginning of the lap, but I am not disappointed. I am super-grateful."
Perez starts Sunday's race from the back of the field after his qualifying appearance lasted just three corners.
Perez, who won in Saudi Arabia a fortnight ago, was unable to slow his Red Bull down in time for the third bend, completely missing the apex and skidding off into the gravel.
Perez attempted to manoeuvre his machine out of the sand trap but he was stuck. The red flags were deployed and Perez's day ended with a whimper.
"We need to sort that issue, man," said a furious Perez over the radio. "It was the same issue again."
The 33-year-old, one point adrift of Verstappen in the standings, headed back to the garage on the back of a moped before reappearing at the back of the Red Bull garage with a face like thunder.
Alonso's 11-year wait to start a race from the front of the field goes on but his rejuvenated Aston Martin team are at least allowing him to compete, finishing four tenths back from Verstappen.
Carlos Sainz starts fifth for Ferrari with Alonso's team-mate Lance Stroll sixth.
Lando Norris has failed to score a single point at the opening two rounds of the season, with his McLaren team rooted to the foot of the constructors' championship.
And the British team's woes continued here with Norris only 13th on the grid. Norris' rookie team-mate Oscar Piastri - the first man from Melbourne to race at Albert Park - failed to provide much cheer for the home crowd. He failed to make it out of Q1 and lines up in 16th.