Sebastian Vettel finally scored the second victory of his latest Formula 1 title defence in the Singapore Grand Prix.
The Red Bull driver benefited from Lewis Hamilton's McLaren suffering a gearbox failure while holding a narrow lead.
Jenson Button claimed second in the other McLaren, with Fernando Alonso's third place maintaining the Ferrari driver's world championship cushion.
Front-row starter Pastor Maldonado had to retire with hydraulic failure having battled with Alonso for the final podium spot.
Hamilton and Vettel ran in close company prior to the McLaren's problem, although the Briton seemed under control.
Third-placed Button fell away at first, before regaining some ground as he got better tyre longevity than those ahead.
Vettel made his first pitstop two laps earlier than Hamilton, and though this initially looked costly as he dropped into time-consuming traffic, once he was in clear air his pace on fresh rubber was sufficient to make up all the time lost and keep him between the McLarens.
That position became the race lead on lap 22, when Hamilton's car ground to a halt with a gearbox failure.
Button then kept Vettel honest to the finish, without it ever looking like the Red Bull's lead was in jeopardy. By the end, Vettel had edged away into a very secure lead.
Vettel stayed cool through two mid-race safety car periods: the first for Narain Karthikeyan sliding his HRT into the barrels at the tunnel entrance, and the second when Michael Schumacher ploughed into Jean-Eric Vergne on the restart lap.
Those cautions resolved the third-place battle. When Maldonado, who had fallen from second to fourth at the start, pitted for a second time under the first safety car, he rejoined 10th while Alonso stayed out and moved up to third. That decision probably secured the place for Ferrari even before Williams ordered Maldonado to retire with a hydraulic problem before the green.
Paul di Resta kept the frontrunners in sight throughout to score an excellent fourth for Force India, outpacing fifth-placed Mercedes man Nico Rosberg.
Lotus salvaged sixth and seventh with Kimi Raikkonen and Romain Grosjean on its least competitive weekend of 2012 so far.
Ferrari's Felipe Massa picked up a puncture on lap one, yet fought back impressively to secure eighth. On the way, he overtook Bruno Senna with an incredible move that saw him bounce off the Williams and the wall before arriving at Turn 13 sideways but in front.
The safety car timing hurt Mark Webber's strategy, and the best he could manage was to battle through to 10th, right on Daniel Ricciardo's tail.
Among other incidents, Nico Hulkenberg clashed with both Saubers on consecutive laps late on, with Sergio Perez the only one involved to get away without having to pit for repairs.
Also notable was Timo Glock's 12th place, which moved Marussia ahead of Caterham in the constructors' standings.
PROVISIONAL RACE RESULTS
The Singapore Grand Prix
Marina Bay Street Circuit, Singapore;
61 laps; 309.316km;
Pos Driver Team Time
1. Vettel Red Bull-Renault 2h00:26.144
2. Button McLaren-Mercedes + 8.959
3. Alonso Ferrari + 15.227
4. Di Resta Force India-Mercedes + 19.063
5. Rosberg Mercedes + 34.784
6. Raikkonen Lotus-Renault + 35.759
7. Grosjean Lotus-Renault + 36.698
8. Massa Ferrari + 42.829
9. Ricciardo Toro Rosso-Ferrari + 45.820
10. Webber Red Bull-Renault + 47.175
11. Perez Sauber-Ferrari + 50.619
12. Glock Marussia-Cosworth + 1:31.918
13. Kobayashi Sauber-Ferrari + 1:37.141
14. Hulkenberg Force India-Mercedes + 1:39.413
15. Pic Marussia-Cosworth + 1:42.925 (*)
16. Kovalainen Caterham-Renault + 1:47.967
17. De la Rosa HRT-Cosworth + 1 lap
18. Senna Williams-Renault + 2 laps
19. Petrov Caterham-Renault + 2 laps
Fastest lap: Hulkenberg, 1:51.033
(*) Pending 20-second penalty
Driver Team On lap
Vergne Toro Rosso-Ferrari 38
Schumacher Mercedes 38
Maldonado Williams-Renault 36
Karthikeyan HRT-Cosworth 30
Hamilton McLaren-Mercedes 22
World Championship standings, round 14:
1. Alonso 194 1. Red Bull-Renault 298
2. Vettel 165 2. McLaren-Mercedes 261
3. Raikkonen 149 3. Ferrari 245
4. Hamilton 142 4. Lotus-Renault 231
5. Webber 133 5. Mercedes 136
6. Button 119 6. Sauber-Ferrari 100
7. Rosberg 93 7. Force India-Mercedes 75
8. Grosjean 82 8. Williams-Renault 54
9. Perez 65 9. Toro Rosso-Ferrari 14
10. Massa 51
11. Di Resta 44
12. Schumacher 43
13. Kobayashi 35
14. Hulkenberg 31
15. Maldonado 29
16. Senna 25
17. Vergne 8
18. Ricciardo 6
All timing unofficial