The four-time world champion clocked one minute and 43.885 seconds on the demanding street circuit to front the grid for the first time in nearly two years, with Mercedes’ Hamilton down in fifth.
Vettel was nearly half-a-second faster than second-placed Daniel Ricciardo of Red Bull, with Kimi Raikkonen finishing third in the other Ferrari.
“I’m surprised by the margin but I think it just came together. I had a near-perfect lap at the end,” said Vettel, after screaming his celebrations over the team radio.
Red Bull’s Daniil Kvyat was fourth, ahead of Hamilton and his team-mate Nico Rosberg as Mercedes’ 23-race stranglehold on the front spot was emphatically broken.
Vettel’s first pole position since Brazil 2013 also snapped a qualifying dry spell for Ferrari stretching back to Germany 2012.
The result gives Vettel a great chance of victory in Sunday’s race in Singapore, where five of seven previous races have been won by the pole-sitter.
Mercedes has been slow all week so far but any thoughts they were bluffing evaporated in a difficult session for the championship pacesetters.
Hamilton was briefly quickest in Q1 but he was otherwise not in the reckoning, and had to pit in Q3 when his underbody was damaged by scraping a kerb.
The Briton enjoys a 53-point lead in the standings but he will be stricken after losing the chance to equal Ayrton Senna’s record of eight pole positions in a row.
Hamilton will also have to fight past both Red Bulls and both Ferraris if he wants to match his boyhood idol’s career tally of 41 wins from 161 races on Sunday.
“I thought they were playing a few card games yesterday but it’s obvious they’re not particularly comfortable this weekend,” Ricciardo said.
Kvyat led Q1 but McLaren’s Jenson Button scraped into Q2 by just 74 thousandths of a second when he secured 15th quickest in the first qualifying session.
Button’s last-gasp time knocked Sauber’s Felipe Nasr out of the running with Marcus Ericsson, Pastor Maldonado, Will Stevens and American debutant Alexander Rossi also missing out.