Poleman Mark Webber did not make the best start and was overtaken on either side by his Red Bull team-mate Vettel and the Mercedes of Nico Rosberg.
As the Mercedes defended from Webber, Vettel put together his now customary fine first lap to go 1.9 seconds clear.
While Vettel then pulled away up front, Webber gradually fell away from Rosberg and was soon under pressure from the Lotus of Romain Grosjean.
Webber and Grosjean pitted together on lap eight and returned in the same order, while Vettel was one of the last frontrunners to stop as he continued to lap faster on his ageing soft tyres than all those on fresh mediums.
Vettel duly reeled off the remaining laps and second stop, completely in a class of his own, and crossed the line half a minute clear of the field.
Webber recovered from his poor first stint by closing Rosberg down once they were both on the medium-compound Pirellis and sweeping round the outside of the Mercedes on lap 20.
Rosberg kept the second Red Bull in sight thereafter, but did not have the pace to seriously challenge Webber.
Similarly, Grosjean could not quite keep up with the Mercedes. He only narrowly cleared the two Ferraris after his second stop before putting on a late charge that fell just short of usurping Rosberg.
Lewis Hamilton, who felt a vibration and had his Mercedes' brakes checked before the start, had already lost ground in the second stint. Unlike Webber and Grosjean, he was unable to overtake the yet-to-stop Sauber of Esteban Gutierrez.
Once the Sauber pitted, Hamilton caught the Force India of the late-stopping Adrian Sutil, which was on mediums.
By then the Mercedes had Massa, Nico Hulkenberg (Sauber) and Alonso not far behind.
All three made it by Sutil's Force India, but not before Massa had brilliantly dived by the Mercedes to run fifth. Alonso also got by Hulkenberg during the battle.
As the other cars pitted, Alonso closed on Massa before the Brazilian stopped.
Alonso left his final stop until there were just 11 laps to go and changed to softs. He rejoined just ahead of Massa and alongside Jean-Eric Vergne, getting ahead of the Toro Rosso as the Ferrari jumped over the Turn 2 kerbs.
The move attracted the attention of the stewards and will be investigated post-race, but Alonso charged on and started closing on Hamilton, who in turn was closing on di Resta, setting up a fight for fifth over the last half-dozen laps.
It took Alonso no time to overcome the Mercedes on lap 50 and he dispensed with di Resta the next time through.
As Alonso charged on, setting fastest lap on the final tour, di Resta successfully held off Hamilton for an impressive sixth.
With Vergne fading on his old rubber and eventually pitting, Massa moved up to eighth, while Sergio Perez's McLaren overtook Sutil on the last lap to take ninth.
Charles Pic led the fight of Formula 1's minnows early on, but was overcome by Giedo van der Garde. He nevertheless finished well clear of the Marussias, headed by Jules Bianchi.
After being put to the back after qualifying, Kimi Raikkonen's grand prix was brief. He tried to pass the Caterhams at the first corner and the ensuing contact with van der Garde put the Lotus out.