With Vettel eliminated in Q1 having completed a single lap thanks to a problem with the airflow to the turbo, Leclerc was favourite for pole in Q3 having looked quickest up to that point.
But Leclerc was unable to take to the track during Q3, climbing out of his car and commiserating with the team and leaving the way clear for Hamilton to set the pace.
Hamilton then dominated Q3, with the lap of 1m11.767s he set on his first run good enough for pole after he failed to improve on his second lap thanks to time lost in the middle sector.
Red Bull driver Max Verstappen split the two Mercedes drivers, lapping 0.346s slower than Hamilton and just 0.016s quicker than Valtteri Bottas.
Pierre Gasly put the second Red Bull fourth, lapping four tenths slower than his team-mate.
With the two Ferraris out of the way, Alfa Romeo driver Kimi Raikkonen took fifth place with an advantage of 0.316s over an otherwise congested midfield.
Romain Grosjean, driving a Haas running to the same specification used in the season-opening Australian Grand Prix, was sixth and just ahead of McLaren's Carlos Sainz.
Racing Point's significant upgrade paid off for Sergio Perez, who qualified eighth ahead of the lead Renault of Nico Hulkenberg.
That left Leclerc classified 10th despite not running, as he had at least run without problem during the previous two stages of qualifying.
The two Mercedes drivers and Leclerc will both start on the medium-compound Pirellis having used them to set their best times in Q2 – something Verstappen also attempted before aborting his first run after reporting a loss of power.
Antonio Giovinazzi was relegated to 11th and eliminated during a frenetic climax to Q2, lapping just 0.012s slower than Perez.
Haas driver Kevin Magnussen, driving the latest-spec Haas, was always up against it after a lockup into the first corner on his final lap and failed to improve on his first-run time as a result – ending up 12th.
Renault's Daniel Ricciardo's late effort was only good enough for 13th, leading him to apologise to the team over the radio, with Toro Rosso's Daniil Kvyat just over three tenths behind.
Racing Point driver Lance Stroll escaped Q1 for the first time in 2019, completing three runs to do so and only having one fresh set of softs for Q2.
He was in contention to get into the top 10, but the rear-end stepped out in the penultimate corner and was unable to improve.
Lando Norris was fastest of those eliminated in Q1 in 16th place just 0.055s slower than Kvyat after being bumped into the drop zone by Giovinazzi's late improvement.
But behind him was the furious Alex Albon, who was baulked at the hairpin on his final Q1 lap by Norris and unable to improve on his first-run time as a result.
George Russell won the Williams team battle for the 11th time this season, lapping just over a tenth quicker than Robert Kubica – the duo taking 18th and 19th thanks to Vettel's failure to post a time.