The German's Mercedes developed problems with its gearshift electronics which left him stranded at the start of the formation lap, and forced him to start from the pit lane. Hamilton duly capitalised, immediately pulling away from the chasing pack to seemingly take control of proceedings.The curse of Singapore threw the race wide open however - the safety car came out on lap 31 after the front wing on Sergio Perez's Force India exploded into fragments following a collision with Adrian Sutil's Sauber.
At that point Fernando Alonso had worked Ferrari into second - he jumped Red Bull duo Sebastian Vettel and Daniel Ricciardo at the start, surrendered a place to Vettel having run wide and across the run-off at Turn 1, and then used the undercut to get ahead once more.
Alonso lost out at the safety car, however: the Red Bull pair had just stopped to switch onto Pirelli's soft rubber, but the Ferrari man stopped again when the safety car was deployed and duly dropped behind them once more. Hamilton, meanwhile, had just pitted for another set of supersofts on the 26th lap. When the race went live again on the 38th lap, after a lengthy delay, he was faced with the need to get his head down and open a gap of 27 seconds over his pursuers in order to be sure of retaining the lead when he finally stopped for his mandatory set of softs.
As the Red Bull drivers battled with Alonso - all three trying to keep their tyres alive - Hamilton sprinted away, but was growing increasingly worried about the state of his own tyres and the possibility of a failure.
He was 25.2s ahead of Vettel when he finally pitted on the 52nd lap - and it wasn't quite enough. The four-time world champion went into the lead as Hamilton rejoined just ahead of Ricciardo and Alonso. But by then Vettel's tyres were well past their best, and in a totally committed move Hamilton sliced by Vettel on lap 54 before streaking away to a 13.5s victory. It was his seventh of the season, his second in Singapore, and enough to put him three points ahead of Rosberg, who was retired on the 13th lap when mechanics could not resolve his gearshift problems following his first pit stop.
In the closing laps Vettel, Ricciardo and Alonso were all over each other, but none of them had the firepower to make a move. They finished just 1.8s apart as the race was ended a lap earlier than the scheduled 61 laps as the two-hour time limit ran out.
Felipe Massa had a relatively uneventful race for Williams to take a lonely fifth, despite having to make a set of softs last from the 22nd lap to the end, while Jean-Eric Vergne was Toro Rosso's star as he took sixth.
The Frenchman had to contend with two five-second penalties - one served as a stop and go, the other added to his race time - for exceeding track limits. After stopping on the 44th lap he made the most of fresher rubber to pull off a sensational late pass on Ferrari's Kimi Raikkonen and Valtteri Bottas in the second Williams.
The two Finns had been locked together as Bottas preserved a set of soft tyres taken on the 23rd lap while simultaneously fighting a steering problem. He looked set for sixth place before sliding wide on the final lap and dropping down to 11th - a cruel reward after a brilliant drive.
Besides Vergne, the beneficiaries of Bottas's misfortune were Force India's Sergio Perez - who made amends for the safety car-prompting clash with Sutil by carving back to seventh at the finish - Raikkonen, who took eighth, and Nico Hulkenberg, whose ninth helped Force India score sufficient points to move back ahead of McLaren in the constructors' stakes.
Jenson Button had been on course for seventh when his MP4-29 quit with seven laps to go, but Kevin Magnussen did at least score for McLaren as he collected the final point in tenth, having received a five-second stop-and-go penalty for exceeding track limits and struggled with issues with his onboard water bottle overheating.
Pastor Maldonado brought his Lotus home 12th ahead of team mate Romain Grosjean, as a dehydrated Daniil Kvyat struggled home 14th for Toro Rosso.
Behind him Caterham's Marcus Ericsson won a great fight with Marussia's Jules Bianchi, finishing just a second ahead, as Max Chilton brought the second MR03 home 17th. Kamui Kobayashi disappeared on the formation lap with technical problems on his Caterham.
The other retirements were the two Saubers, Esteban Gutierrez with electronics problems and Adrian Sutil with a water leak.
Hamilton's victory takes him three points clear of Rosberg, 241 to 238, with Ricciardo third on 181. Alonso moves back to fourth on 133 and Vettel moves to fifth on 124, with Bottas dropping from fourth to sixth by staying on 122.
Mercedes have 479 points to Red Bull's 305, while Williams stay ahead of Ferrari, 187 to 178.