The Spaniard led from start to finish but was pressured throughout by Red Bull's Vettel, who closed markedly over the final two laps to almost snatch a win.
Alonso won his second Singapore GP, crossing a finish line clouded in smoke. Lotus' Heikki Kovalainen had just stopped nearby with the rear half of his Lotus on fire. Red Bull's Mark Webber finished third — surviving a mid-race collision that eliminated McLaren's Lewis Hamilton — to boost his championship lead to 11 points over Alonso with four races remaining. Webber leads with 202 points and Alonso is second with 191.
Hamilton nosed in front of Webber approaching a corner on lap 35 of 61 but the Australian did not yield the inside line and collided with the McLaren. While Hamilton's race was finished, Webber's Red Bull was unharmed and continued in the race.
The incident was investigated by stewards, but they chose to take no action, deeming it a fair racing incident.
Hamilton entered the race just five points off the championship lead, but his second straight non-finish meant he was now 20 points off the pace with 182.
McLaren's Jenson Button finished fourth, ahead of Mercedes's Nico Rosberg and Williams's Rubens Barrichello.
Robert Kubica of Renault was seventh after pitting late and passing several cars on fresh tires. Force India's Adrian Sutil was eighth, Williams's Nico Hulkenberg ninth, while Ferrari's Felipe Massa — who started from last on the grid — got the final point for 10th.
Alonso won the inaugural 2008 Singapore GP, but that victory was tainted by the ‘Crashgate' scandal which emerged the following year. Alonso's then Renault teammate Nelson Piquet Jr. was ordered to deliberately crash to bring out the safety car to manipulate the running order and help Alonso win.
This was a fair and square win, and his 25th career victory puts him level on the all-time list with Niki Lauda and Jim Clark.