Vettel hung on ahead of the charging Mercedes on the final lap to take his second win in two races this season and one of the best of his illustrious career.
In a dramatic, strategic and unpredictable race, a Ferrari mechanic was injured when he was run over by Vettel's team-mate Kimi Raikkonen at a pit stop.
Lewis Hamilton recovered to third place after starting ninth, including one stunning moment when he passed three cars in effectively one move early in the race.
Vettel now has a 17-point lead over Hamilton after two of 21 races this season.
Vettel's amazing save
Vettel whooped in delight after crossing the line, his glee at winning a race he arguably should have lost clear.
"These tyres were done, done, in the last 10 laps," Vettel told his team over the radio.
Bottas had closed five seconds in five laps and was right on Vettel's tail as they entered the final lap - but a half-hearted move into the first corner was not enough and Vettel was able to hang on.
The German looked in total control of the race in the opening laps as he led away from pole position, after Bottas passed Raikkonen into the first corner.
But Mercedes employed clever thinking to force Ferrari into an agonising choice between hanging on with fading, fragile tyres or sacrificing the lead for a stop for fresher rubber and attacking.
Mercedes appeared to be readying to pit Bottas, but changed their minds when Vettel made his pit stop ahead of them on lap 18, with 39 to go, the Ferrari fitting soft tyres.
Bottas stayed out for two more laps and changed to mediums.
Ferrari were now under pressure, with Bottas clearly going to the end on those tyres, and in a quandary.
They chose to stay out, going for track position rather than risk any aggression, and it paid off thanks to Vettel's ability to manage the tyres while also keeping a strong pace.
As the strategies played out, Mercedes initially assumed Vettel would pit and were telling Hamilton, now in third place after Raikkonen's problem, that the German would come out behind him.
Radio exchanges became fraught as Mercedes and Hamilton discussed the scenarios with a crackling signal.
In the end, Hamilton's pace became moot as Vettel hung on to set up what promises to be a great season.