Fernando Alonso held off Sergio Perez to take victory in a remarkable Malaysian Grand Prix, that saw changing weather, a long red flag, and a sensational lead battle between two unlikely contenders.
Alonso's victory took the Ferrari driver into the world championship lead, despite the team's tough start to the season, but only a late error prevented Perez passing the double champion to take what would have been one of Formula 1's most surprising wins ever for Sauber.
Lewis Hamilton completed the podium, with his McLaren team-mate Jenson Button outside the points after a disastrous race. Sebastian Vettel also failed to score due to a clash in traffic, though his Red Bull team-mate Mark Webber claimed fourth ahead of Kimi Raikkonen (Lotus) and Bruno Senna (Williams).
Most of the field used intermediates for the start, which took place on a track dry in some parts but extremely wet in others.
The McLarens held their grid formation into the first corner, as Romain Grosjean and Michael Schumacher battled for third until making contact and both spinning as the Lotus slid into the Mercedes, allowing the Red Bulls of Mark Webber and Vettel into third and fourth, ahead of Alonso. Grosjean would put the Lotus into the gravel for good on lap three.
Already the rain was beginning to increase, and it was here that Sauber opted for the masterstroke of putting Perez straight onto extreme wet tyres - a choice nearly everyone would have to follow over the ensuing laps as the circuit became ever-more sodden.
By lap four, Perez was lapping three seconds quicker than the leaders, and that pace meant that by the time everyone had made the switch to wets, the Sauber was up to third behind the two McLarens. Webber, Alonso and Vettel were next up, the Ferrari having split the Red Bulls by taking wets a lap earlier than Vettel.
The storm then increased to the point that a red flag was inevitable, and the field would spend nearly an hour halted on the grid. Particularly notable performances at this stage were Toro Rosso's Jean-Eric Vergne getting up to seventh by virtue of hanging on with intermediates in the deluge, and Narain Karthikeyan appearing in 10th for HRT having started on wets.
Race control mandated wet tyres for the eventual restart, though by the time four laps behind the safety car had been completed the track was right for intermediates, with Button pitting just as racing resumed.
That allowed him to jump ahead of team-mate Hamilton, who also lost out to Alonso in a slightly slow stop. But Button's race then fell apart as he clipped Karthikeyan while coming back through traffic after his stop, forcing him to pit for a new front wing.
Perez stayed out a lap longer than Alonso and Hamilton, and rejoined ahead of them - although the Ferrari immediately overtook the Sauber.
Alonso then began edging away, establishing six-second cushion over Perez, as both dropped the rest of the field.
As the track dried heading into the final third of the race, Perez charged up behind Alonso, whose tyres were fading faster. Before the Sauber could attack, Alonso came in for dry tyres, and reopened a five-second lead by doing so a lap before his rival.
But on a dry track, the Sauber was much quicker than the Ferrari and started taking a second or more per lap out of Alonso's lead, closing onto its tail with seven laps to go - amid radio messages from the team urging him not to jeopardise second place.
Then a mistake coming onto the back straight saw Perez run wide and lose five seconds. The Mexican immediately resumed his charge, but did not have enough laps or enough of a pace advantage to pull off a remarkable win.
Hamilton did not have the pace to catch the top two in wet or dry conditions and finished third. Vettel was on course for fourth until clipping Karthikeyan's HRT in the closing stages - causing a rear puncture that dropped the world champion to 11th and handed fourth to Webber.
Raikkonen continued his strong race form on his F1 return with fifth place for Lotus.
Senna produced an excellent charge to take a career-best finish of sixth for Williams, despite sliding into team-mate Pastor Maldonado on lap one and breaking his front wing.
Both Force Indias scored, with Paul di Resta seventh and Nico Hulkenberg ninth, split by Vergne's Toro Rosso.
Mercedes' weekend fell apart in the race again, with Schumacher only able to get back up to 10th after the first-lap clash and an additional tyre stop leaving Nico Rosberg 14th, behind the delayed Button - whose recovery drive was stymied by tyre difficulties that saw him make another additional stop.
Maldonado had been on course for the final point as he chased Vergne and Hulkenberg in a tight three-way battle, until an engine problem halted the Williams two laps from home.
While one Ferrari took victory ahead of a Ferrari protege, Felipe Massa could only finish 15th after another poor performance in the Italian team's second car.
Pos Driver Team Time
1. Alonso Ferrari 2h44:51.812
2. Perez Sauber-Ferrari + 2.263
3. Hamilton McLaren-Mercedes + 14.591
4. Webber Red Bull-Renault + 17.688
5. Raikkonen Lotus-Renault + 29.456
6. Senna Williams-Renault + 37.667
7. Di Resta Force India-Mercedes + 44.412
8. Vergne Toro Rosso-Ferrari + 46.985
9. Hulkenberg Force India-Mercedes + 47.892
10. Schumacher Mercedes + 49.996
11. Vettel Red Bull-Renault + 1:15.527
12. Ricciardo Toro Rosso-Ferrari + 1:16.826
13. Rosberg Mercedes + 1:18.593
14. Button McLaren-Mercedes + 1:19.719
15. Massa Ferrari + 1:37.319
16. Petrov Caterham-Renault + 1 lap
17. Glock Marussia-Cosworth + 1 lap
18. Kovalainen Caterham-Renault + 1 lap
19. Maldonado Williams-Renault + 2 laps
20. Pic Marussia-Cosworth + 2 laps
21. Karthikeyan HRT-Cosworth + 2 laps
22. De la Rosa HRT-Cosworth + 2 laps