Vettel’s second win of the season played into the hands of championship leader Fernando Alonso of Ferrari, who was third but extended his lead in the title standings to 39 points thanks to Hamilton pulling out with a gearbox problem.
Second place went to Hamilton’s McLaren teammate Jenson Button, who almost took himself and Vettel out of the race at one stage, narrowly avoiding a collision after some erratic driving.
Reigning champion Vettel is now Alonso’s closest rival, ahead of Kimi Raikkonen and Hamilton, with six of the 20 races remaining.
“Yes, we did it! Thank you boys, this one is for you,” Vettel said to the Red Bull team in televised comments.
The win makes Vettel the first man to win two Singapore Grands Prix back-to-back, and the first man to win Formula One’s only night race without starting from pole position, barring Alonso’s win in 2008, which was influenced by a conspiracy to fix the result.
The safety car came out twice for accidents and the delays resulted in the race being cut to 61 laps to meet the two-hour time limit.
The race saw plenty of action, with Felipe Massa pulling off an eye-catching move on Bruno Senna while Nico Hulkenberg’s attempted overtake on Kamui Kobayashi ended up with both cars damaged and their drivers’ hopes of points in ruins.
Seven-time champion Michael Schumacher was in line for points before he steamed into the back of Jean-Eric Vergne to bring out the safety car on lap 39 just seconds after the end of the first safety car spell, caused by Narain Karthikeyan bundling his HRT into the barriers.
Hamilton dominated the early stages of the race before he ground to a halt on lap 23, and is now 52 points behind Alonso.
Vettel had run second since the start and inherited the lead, facing only minor challenges from Button at the two safety car restarts on the way victory.
Further down the field, Paul di Resta earned the best result of his F1 career with fourth for Force India, Nico Rosberg was fifth for Mercedes, while Raikkonen rose to third in the title standings after battling his way to sixth from 12th on the grid.
Raikkonen’s Lotus teammate Romain Grosjean was seventh after the team asked him to give way to the Finn, while Felipe Massa rescued eighth for Ferrari after picking up a puncture at the start.
Ninth went to Toro Rosso’s Daniel Ricciardo, while Mark Webber’s championship hopes took another blow as he finished 10th, leaving the Australian fifth in the standings, 61 points adrift of Alonso.
Williams had a disappointing afternoon as a hydraulic fault ended Pastor Maldonado’s race after the Venezuelan had started second, ending his hopes of his first points since winning in Spain in May. His Williams teammate Senna retired from 10th on the last lap.
Russia’s Vitaly Petrov endured a torrid race, finishing 19th after a first-lap collision with teammate Heikki Kovalainen and a later stop to replace a faulty wheel-nut.
The next race is in Japan Oct 7.