Behind the fleet German - who poignantly lapped both Red Bulls four laps from home - polesitter Lewis Hamilton maintained his championship lead but struggled with his Mercedes’ balance on his way to a frustrated second place, 8.5s in arrears and 3.7s ahead of team mate Nico Rosberg.
Hamilton had led away but things went awry for Mercedes when Marcus Ericsson spun his Sauber at Turn 1 on the fourth lap, bringing out the safety car. Hamilton and Rosberg both immediately pitted for Pirelli’s hard tyre, but crucially Ferrari kept Vettel out on the mediums on which all of the top 10 qualifiers had started.
As Mercedes thus locked themselves early into a three-stop race, Vettel was able to make use of his Ferrari’s lower tyre degradation to control things and get by with only two stops. Mercedes were thus left on their back foot.
Underlining how strong the red cars were in the very high ambient and track temperatures here, Kimi Rakkonen recovered from a first-lap puncture after a brush with Felipe Nasr, and then two normal pit stops, to take fourth, well ahead of a tense intra-team battle which saw Valtteri Bottas come back from a first-lap clash with Pastor Maldonado to push ahead of Williams team mate Felipe Massa on the 55th of the 56 laps.
Max Verstappen was always in contention for points, and duly took a great seventh place, making him, at 17, the youngest driver ever to score world championship points. He was the last unlapped runner. Making it a grand day for Toro Rosso, team mate Carlos Sainz followed him home in eighth.
It was a bleak day for Red Bull; Daniil Kvyat survived an attack which saw Force India’s Nico Hulkenberg spin him at Turn 2 to take a lowly ninth after a tough battle with team mate Daniel Ricciardo, whose own RB11 suffered front wing damage on the opening lap.
Lotus’s Romain Grosjean was spun by Force India’s Sergio Perez during an overtake attempt midway through the race, but recovered for 11th ahead of a troubled Felipe Nasr who struggled all afternoon with his Sauber and never looked like repeating his brilliant Australian debut.
Perez eventually led Hulkenberg home by just four-tenths of a second, both Force India drivers having been given 10-second penalties for their indiscretions.
Roberto Merhi was the final finisher for Marussia, three laps down, after team mate Will Stevens was unable to start as his car could not be repaired after his fuel system problems on Saturday.
Jenson Button’s McLaren suffered power loss just when - to his surprise - he found himself catching cars in front, while Fernando Alonso’s sister car also experienced a technical problem. Ericsson could not restart after his spin, so was the race's first retirement.
Vettel’s victory - the first for Ferrari since the 2013 Spanish Grand Prix, and the German’s first since Brazil in the same year - allowed him to close to within three points of Hamilton in the drivers’ standings. After two rounds Hamilton has 43 points to Vettel’s 40 and Rosberg’s 33.
Mercedes retain a commanding lead in the constructors’ stakes, with 76 points to Ferrari’s 52 and Williams’ 30.