Red Bull's Verstappen wins chaotic Australian Grand Prix
The world champion began from pole and despite being passed by Mercedes pair George Russell and Hamilton at the start, he kept his cool to win a race red flagged three times, with multiple crashes.
Hamilton came home second ahead of Aston Martin's Fernando Alonso, who made it three podiums from three this year.
"We had a very poor start, lap one I was careful as I had a lot to lose," said Dutchman Verstappen.
"After that, the pace of the car was quick. With these red flags, I don't know, I don't really understand. It was a bit of a mess but we had good pace and we won, so that's important."
It was a disastrous day for Ferrari's Charles Leclerc, last year's winner, who spun out on the first lap, while Russell's car caught fire on lap 19 and his race too was over.
The victory was Verstappen's maiden win in Melbourne and Red Bull's first in Australia since Sebastian Vettel's 2011 triumph.
His teammate and winner in Saudi Arabia a fortnight ago Sergio Perez sliced through the field to come fifth after qualifying last due to brake issues.
The Red Bull triumph came despite unbelievable late drama that saw a red flag come out when Verstappen had a comfortable lead from Hamilton and Alonso with two laps left, meaning they had a bunched restart for an all-out attack to the finish.
But it descended into chaos when Alonso was clipped by Ferrari's Carlos Sainz as they jostled for position and sent into a spin, which caused a flow on effect with multiple other cars coming to grief.
Sainz was given a five-second penalty, eventually finishing 12th, and the race was stopped again.
It resumed after a lengthy delay for single lap behind a safety car - with no overtaking allowed - in the order of the previous start with only 12 cars left.
Seven-time world champion Hamilton was ecstatic at making the podium.
"I'm driving as best I can and working as hard as I can but still, considering we've been down on performance and in straight pace, for us to be up there fighting with Aston is amazing," he said.
On a fine, sunny day, Lance Stroll in the other Aston Martin was fourth ahead of Perez.
Lando Norris in a McLaren was sixth, Niko Hulkenberg in the Haas seventh and rookie Oscar Piastri, in the other McLaren, an encouraging eighth in only his third race and on his home circuit.