Ferrari's Fernando Alonso produced a dominant performance to win the Chinese Grand Prix.
The Spaniard was in control as Lotus's Kimi Raikkonen and Mercedes' Lewis Hamilton fought off a late challenge from Red Bull's Sebastian Vettel.
McLaren's Jenson Button, making one stop fewer than his leading rivals, was fifth.
Vettel's title lead over Raikkonen was cut to three points, with Alonso now up to third, a further six behind.
Hamilton is a further three points adrift of Alonso and 10 ahead of Ferrari's Felipe Massa.
The race was dominated by tyre strategy but it was clear from relatively early on that Alonso would be tough to beat.
"Definitely it was a fantastic race for us from the start to the end," said Alonso. "We had no problems with the car, the tyre degradation was better than expected.
"It feels fantastic. After the retirement in Malaysia we were under pressure to finish but of the two races we have finished we have been second and first so it is looking good and we are very optimistic."
Having qualified third, Alonso started on the fragile 'soft' tyre, like the other cars in the top seven on the grid.
He passed Raikkonen at the start to trail pole position winner Hamilton in the first few laps, before taking the lead from the Mercedes at the start of lap five.
Alonso made his first stop for tyres two laps later, dropping back behind the drivers who had started the race on the more durable 'medium' tyres, while Sauber's Nico Hulkenberg led the race from Vettel and Button.
But Alonso made rapid progress back up through the field and took the lead from Button after Vettel had made his first stop for tyres by passing him into Turn One on lap 21.
That dropped Alonso to third behind Vettel and Hulkenberg, but the Ferrari driver passed both within six laps and when Vettel made his second stop the Spaniard led Hamilton by more than 10 seconds.
With everyone needing to make one more stop and Vettel still to fit the 'soft' tyres, it was clear Alonso was in total control of the race at this stage and indeed he extended his lead to nearly 13 seconds before his final stop on lap 41.
He rejoined right behind Vettel and passed him into Turn One with 13 laps to go, with the world champion still needing to make a final stop.
Behind him, Vettel tried to build a big enough lead over Raikkonen and Hamilton to ensure he had a chance of racing them for a podium position in the closing laps.
Raikkonen had trailed Hamilton until he leap-frogged the Mercedes by making his final stop three laps earlier and the Finn controlled his pace to stay ahead to the end.
Raikkonen lost about 0.15secs a lap in performance through a damaged nose and right-hand part of the front wing that was caused by a clash with McLaren's Sergio Perez.
Vettel made his final pit stop with five laps to go and went flat out to try to close the 11-second gap to Raikkonen and Hamilton ahead.
He closed right in on Hamilton at the start of the last lap but the Englishman just managed to hold on, helped by Vettel starting to slide in the corners before the long back straight as his tyres began to lose grip.
Button's was an impressively controlled drive to make one fewer pit stop than his rivals in an uncompetitive car, passing Massa for fifth soon after emerging from the pits from his final stop.
Toro Rosso's Daniel Ricciardo converted his excellent seventh place on the grid into the same position at the finish, while Force India's Paul di Resta used the same strategy as Button to take eighth ahead of Lotus's Romain Grosjean and Hulkenberg.
1. Fernando Alonso - Ferrari - 1:36:26.945
2. Kimi Raikkonen - Lotus - 1:36:37.113
3. Lewis Hamilton - Mercedes - 1:36:39.267
4. Sebastian Vettel - Red Bull - 1:36:39.470
5. Jenson Button - McLaren -1:37:02.230
6. Felipe Massa - Ferrari - 1:37:07.772
7. Daniel Ricciardo - Toro Rosso - 1:37:09.636
8. Paul di Resta - Force India - 1:37:18.029
9. Romain Grosjean - Lotus - 1:37:20.368
10. Nico Hulkenberg - Sauber - 1:37:23.543
11. Sergio Perez - McLaren - 1:37:30.805
12. Jean-Eric Vergne - Toro Rosso - 1:37:39.549
13. Valtteri Bottas - Williams - 1:38:00.806
14. Pastor Maldonado - Williams - 1:38:02.398
15. Jules Bianchi - Marussia - 1:41.537 lapped
16. Charles Pic - Caterham - 1:41.997 lapped
17. Max Chilton - Marussia - 1:41.978 lapped
18. Giedo van der Garde - Caterham - lapped
19. Nico Rosberg - Mercedes - retired, 21 laps
20. Mark Webber - Red Bull - retired, 15 laps
21. Adrian Sutil - Force India - retired, 5 laps
22. Esteban Gutierrez - Sauber - retired, 4 laps