His teammate Charles Leclerc finished in second place to make it a 1-2 for Ferrari - their first top-two finish this season.
Red Bull's Max Verstappen completed the podium positions in third place - his first top-three finish since the Hungarian Grand Prix.
Championship leader Lewis Hamilton had to settle for 4th place in what was a surprising result for both Mercedes and their rivals Ferrari.
391 days ago was Vettel's last win in F1 in which was the Belgian Grand Prix in August 2018.
All eyes were on Leclerc at the start of the race after the Monegasque sealed a third pole position in a row for Ferrari.
And the pole-sitter controlled the start of the race very well by keeping Hamilton behind after turn 1 before Vettel was challenging the Briton for second place on the opening lap. Hamilton, however, stayed in front of the German.
The opening lap saw Renault's Daniel Ricciardo start from the back of the grid after breaking the rules in qualifying.
The Aussie, however, had a terrific by jumping up to 15th from 20th while his teammate Nico Hulkenberg was forced to go into the pits along with McLaren's Carlos Sainz Jnr.
The Spaniard made contact with Nico Hulkenberg and now a lap down after suffering a puncture.
10 laps later and Ricciardo performed a brave overtake on former teammate Daniil Kvyat to go 12th which involved a bit of a close shave between the two drivers.
Kvyat was then overtaken again this time by Racing Point's Sergio Perez leaving the Russian in 15th place.
Just after lap 12 the drivers at the front were on soft tyres and were starting to struggle.
Around laps 13 to 15, some of the cars lower in the leaderboard were making their first pitstops after the soft tyres were beginning to look weak in terms of pace.
After Perez had been in for fresh new tyres, the Mexican set the fastest lap for Racing Point.
This left recommendations for the two Ferraris to make the first move into the pits a couple of laps before Valtteri Bottas went in for Mercedes.
Vettel and Leclerc were pulled back to 6th and 7th after their first pitstops while Hamilton was leading at the front.
It wasn't until lap 26 that Hamilton finally pitted and resumed in 8th place just ahead of Bottas but behind the two Ferraris in 6th and 7th.
As Antonio Giovinazzi was losing places near the front after not making any pitstops, Ricciardo was attempting to pass the Italian until the Aussie's right rear tyre caught the Alfa Romeo leaving the Renault car with a puncture.
Shortly after the incident, Giovinazzi went in for new tyres and so did Ricciardo.
Just past the midway point of the race, Williams' George Russell was the first car to retire when trying to defend his position from Haas' Romain Grosjean.
The two collided resulting in Russell striking the wall. The Frenchman had some damage but a trip to the pitstops kept the Frenchman within the race.
Russell responded angrily on the radio: "Grosjean, why am I not surprised?"
The safety car was deployed following Russell's retirement from the race.
The restart would see Vettel lead the line with Leclerc behind followed by Verstappen, Hamilton and Bottas, setting up an interesting second period of the race.
Lap 42 saw Lance Stroll going into the pits after colliding side to side with one of the Toro Rosso's.
The Canadian's car suffered with a punctured tyre but he was able get the damage treated and returned to the track in 19th place.
A lap later, Stroll's teammate Sergio Perez had a technical problem with his car leaving Stroll as the only Racing Point driver out on the track.
The safety car was called out again for the marshals to clear Perez's car off the track.
Vettel was still at the front of the pack with Leclerc over his shoulder followed by Verstappen and Hamilton.
With 11 laps remaining, Alfa Romeo's Kimi Raikkonen and Toro Rosso's Daniil Kvyat made contact just before approaching turn one.
The incident would group all the cars together again with the safety car making another appearance.
The front five had not changed since the previous safety car outing as Vettel had less than 10 laps to go to claim his first race win of the season.
With Vettel winning on four visits in Singapore, his experience and support from his teammate from behind played a big part towards the German's victory on Sunday night.
Driver of the day - Sebastian Vettel
Fastest lap - Kevin Magnussen
Next race - Russian Grand Prix
Follow Sportskeeda for the latest F1 News, Results, Standings, and Schedule.Published 22 Sep 2019, 21:11 IST