Vettel, who trails Hamilton by three points in the title race, fended off the challenge from the rampant Red Bulls of Max Verstappen and Daniel Ricciardo to seal the front spot by one-third of a second.
The Ferrari driver punched the air with delight and celebrated his 49th career pole like a victory. With overtaking virtually impossible at this 3.2-mile street circuit, he will start the race as the clear favourite to move ahead of Hamilton and return to the summit of the standings.
Hamilton’s Mercedes team have long predicted that they would struggle in Singapore, and so it proved in qualifying with the Briton more than half-a-second adrift of Vettel’s pole lap. His team-mate Valtteri Bottas was even further back in sixth.
The slow-speed nature of the Marina Bay circuit had been expected to play to Ferrari, and indeed Red Bull’s strengths, and it appeared as though it would be Verstappen, a fortnight shy of his 20th birthday, who would become the sport’s youngest ever pole sitter.
But Vettel produced the goods when it mattered most with a record-breaking lap of one minute and 39.481 seconds to provide the best possible answer to both his and Ferrari’s disappointing performance in Italy last time out.
It was Hamilton who triumphed on Ferrari’s home turf in Monza, but there were grimaces on the faces of Mercedes bosses Toto Wolff and Niki Lauda as their star man failed to trouble the top of the order.
Bottas signed a new one-year extension to remain as Hamilton’s team-mate next year earlier this week, but the Finn has struggled for pace all weekend and was an eye-watering 1.3 secs slower than Vettel. Kimi Raikkonen will start fourth for Ferrari.
McLaren put an end to their Honda nightmare on Friday after finally confirming they would divorce from their current engine supplier at the end of the season.
And at a circuit not reliant on power, they managed to get both cars inside the top 10, with Fernando Alonso to start eighth and Stoffel Vandoorne ninth. Jolyon Palmer’s future in the sport was cast in doubt here after it was confirmed that Carlos Sainz will replace him at Renault next season.
The 26-year-old has not scored a point this season, and he failed to break into the top 10 on Saturday after he qualified 11th.
As has been the case at every round this season, Nico Hulkenberg positioned his Renault ahead of his British team-mate after posting the seventh best time. Sainz completed the top 10 for Toro Rosso.
“I don’t know where that time came from,” said Vettel, who has now secured four poles of the 10 events staged here. “I struggled also this morning. I shouted as loud as the crowd. It was unbelievable.
“I love this track. The car was tricky but was getting better, better and better. So I am pleased we got it done. It’s an amazing track when you feel the car was coming together. I knew we had it in us but we had to get there.”