Vettel became the youngest three-time champion in Formula One at age 25.
Seven-time world champion Michael Schumacher, F1's most successful driver, finished seventh in his final race after 19 seasons.
Vettel appeared in big trouble after he was bumped into shortly after the first lap and spun. The German dropped to last place before he could turn his car around and start a difficult pursuit. But he steadily worked his way up the field and did what he had to — holding off Ferrari's Fernando Alonso, the only other driver contending for the title.
Alonso had a superb start on a hectic first lap at Interlagos and finished second, but that wasn't enough to erase Vettel's 13-point lead in the standings.
Alonso's Ferrari teammate Felipe Massa was third in front of his home crowd, and cried on the podium after finishing a difficult season on a high note.
Lewis Hamilton was leading in his final race with McLaren when Nico Hulkenberg crashed into him while trying to pass on a slippery track with 17 laps to go.
The race was dramatic from the start but had an anticlimactic finish behind the safety car after Paul Di Resta crashed just before the final lap.
Vettel is the first driver with three titles in a row since Schumacher won five straight from 2000-04. The only other driver to win at least three consecutive championships was Juan Manuel Fangio from 1954-57.
He needed to finish fourth or better to clinch the title regardless of where Alonso crossed the line. The Spaniard would only have a chance by finishing on the podium.
It rained on and off throughout the race at Interlagos, making conditions difficult and forcing drivers to come in and out of the pits several times.
It was dry at the start, but it was a chaotic first lap, and a perfect one for Alonso.
The Spaniard moved from seventh to fifth after the first corner, while Vettel dropped from fourth to seventh. Vettel then was hit from behind by the Williams of Bruno Senna and spun at the end of the back straight, dropping to last place after sitting backward on the track with several cars having to go around him.
Moments later, Alonso passed Felipe Massa and Vettel's Red Bull teammate Mark Webber at the same time to move to third. Had they stayed in those positions, Alonso would have won the title.
But the Spaniard lost a position after locking his front tire and briefly running off the track at the first corner, while Vettel — without significant damage to his car — began making his way back to the front, easily passing the slower cars near the end of the pack. He was already sixth by lap 15.
Alonso was fourth and Vettel fifth when the safety car was deployed for debris on the track eight laps later. Vettel then dropped to seventh at the halfway point of the 71-lap race, which still would have been good enough to defend his 13-point lead and clinch the title.
Alonso briefly had the title in his hands again after more rain fell with 14 laps to go. Red Bull lost time while putting the wet tires on Vettel's car, dropping him to 11th place while Alonso moved into third. But after all cars pitted, Vettel was sixth, enough to keep the title.
Alonso moved to second after passing Massa, but he needed Vettel to drop a few more spots.
Hamilton started from pole position and kept his spot for a few laps before being overtaken by teammate Button on the sixth lap, and Hulkenberg got past the British driver on Lap 18.
Hamilton retook the lead with 22 laps to go, but was hit by Hulkenberg when the Force India driver came in too hard to make the pass. Hulkenberg was eventually penalized while Hamilton received a standing ovation from his McLaren team when returning to the garage.