Alonso started from third place but moved up to second place at the start.
Pole sitter Lewis Hamilton struggled with his tyres early on, allowing Alonso to usurp him at the head of the field.
Kimi Raikkonen finished in second place, despite making a poor start and hitting Sergio Perez after the first round of stops. The Finn damaged his front wing but was able to continue without large problems.
Hamilton hung on to the final podium place having come under intense pressure from Sebastian Vettel. The German started on the prime tyres from ninth on the grid and changed to the options with a few laps remaining.
Vettel sliced the gap down from 12 seconds to just one in the space of four laps, but ultimately had to settle for fourth.
Jenson Button stopped twice, compared to the typical three, and finished in fifth.
Felipe Massa came home sixth, ahead of Toro Rosso's Daniel Ricciardo and Paul di Resta.
Romain Grosjean and Nico Hulkenberg collected the final points.
Mark Webber suffered a miserable race as he hit Jean Eric Vergne, forcing the Australian into the pits for repairs. His right rear wheel was not correctly fitted and it detached at Turn 13, putting Webber out of the race.
Nico Rosberg suffered from a suspension issue and retired, while there was heavy contact when Esteban Gutierrez slammed into the back of Adrian Sutil at the hairpin, eliminating both from the race early on.