A restart on lap 39 of the Marina Bay Street Circuit allowed Red Bull's Vettel to pull away from Button and then beat the McLaren driver to the finish by 8.9 seconds.
It was the two-time defending Formula One champ's second win of the season -- he also took the April 22 Bahrain Grand Prix -- and the 23rd victory of his career.
He also had benefited from Lewis Hamilton's gearbox failure early in the race.
The event was shortened to 59 laps due to a two-hour time limit.
Vettel's win moved him up to second in the world championship point standings, 29 behind Ferrari's Fernando Alonso, who finished third Sunday.
Paul di Resta came in fourth and Mercedes' Nico Rosberg rounded out the Top 5.