The Red Bull driver took the chequered flag for the second time this season ahead of McLaren's Lewis Hamilton, with the latter's team-mate Jenson Button finishing third.
Hamilton finished second despite serving a drive-through penalty, while Button was one of nine drivers handed a five-second penalty for speeding behind the safety car, which was deployed when Vettel's team-mate Mark Webber suffered a serious accident on lap 10 of the race.
Williams driver Rubens Barrichello finished fourth ahead of Renault's Robert Kubica and Force India's Adrian Sutil.
Sauber's Kamui Kobayashi finished seventh ahead of Toro Rosso's Sebastien Buemi, Ferrari's Fernando Alonso and Kobayashi's team-mate Pedro de la Rosa.
Although Button, Barrichello, Kubica and Sutil kept their places despite picking up penalties, Buemi and de la Rosa were later demoted to ninth and 12th places respectively.
Nico Hulkenberg also picked up a penalty but retired later in the race, while Vitaly Petrov and Tonio Liuzzi were demoted to 14th and 16th respectively.
With Vettel getting away cleanly at the lights, Hamilton passed Webber and challenged the German for the lead through the tight second corner. However, with the cars touching, the Red Bull held ground.
Starting fourth, Alonso momentarily challenged Hamilton for second, while Webber fell right back and ended lap one down in ninth place behind Hulkenberg.
With Hamilton suffering minor damage to his car's front wing as a result of the opening lap skirmish, Vettel started to pull away and was three seconds clear by lap six.
Webber's difficult afternoon got worse when he made an early stop on lap eight - Red Bull's attempts to bolt on a set of hard tyres being hampered by a problem with the left front wheel.