Red Bull's Vettel led from the start for his 11th victory of the season, finishing some 8.4 seconds ahead of Button with Ferrari's Fernando Alonso third and Australian Mark Webber fourth.
Mercedes drivers and seven-time winner Michael Schumacher and Nico Rosberg finished fifth and sixth respectively, while McLaren's Lewis Hamilton finished at seventh after yet another collision with his Ferrari bete noire, Felipe Massa.
Force India' Adrian Sutil finished at the ninth place, while the only Indian driver in the race, Narain Karthikeyan, finished 17th for Hispania.
India's batting legend, Sachin Tendulkar waved the chequered flag on the maiden Indian Formula one Grand Prix.
Meanwhile, Uttar Pradesh Chief Minister Mayawati handed over the winning trophy to Sebastian Vettal in the presentation ceremony.