Vettel passed pole-sitter Valtteri Bottas down the inside into Turn 1 and had the pace to fend off an attack from his Mercedes rival to secure Ferrari's first victory since Hungary in July.
Bottas crossed the line second, 2.7 seconds adrift, with Ferrari's Kimi Raikkonen holding off a charging Hamilton, who had started from the pitlane, to finish third for the third race in succession.
Vettel made a great start from second on the grid and though Bottas gave him a squeeze into Turn 1, the Ferrari driver made it stick to take the lead.
Further down the field, Kevin Magnussen squeezed Stoffel Vandoorne towards Daniel Ricciardo, causing a collision and bringing out the safety car.
Ricciardo was spun round, dropping him to the back of the field, but he continued while Vandoorne and Magnussen retired.
At the restart, Vettel retained the lead from Bottas, Raikkonen and Max Verstappen, with Felipe Massa delighting his home crowd with a pass around the outside of Fernando Alonso into Turn 1 for fifth.
Hamilton, running on soft tyres, made good progress through the field and was up into the points by lap nine, passing Pierre Gasly for 10th.
Bottas was the first to pit for softs, with Vettel pitting a lap later and rejoining just ahead of the Mercedes driver, managing to hold him off into Turn 4.
As those who started the race on the supersofts pitted, Hamilton inherited the lead and pushed on until lap 43, when he pitted, rejoining 15th - 19 seconds behind Vettel.
The four-time world champion was the fastest driver on the track, catching and passing Verstappen around the outside on the run to Turn 4 with 12 laps to go.
He then rapidly caught Raikkonen but a lock-up into Turn 1 dropped him back and his challenge faded.
Verstappen, who struggled with his tyres in the closing stages leading to a late stop for supersofts, was fifth ahead of Red Bull teammate Ricciardo.
Massa held off Fernando Alonso to take seventh in his final Brazilian Grand Prix and penultimate race of his Formula 1 career.
Sergio Perez took ninth, crossing the line a fraction behind Alonso, with Nico Hulkenberg scoring Renault's first point since Singapore with 10th.
Esteban Ocon suffered the first retirement of his Formula 1 career after being tagged by Romain Grosjean, who lost control of his Haas at Turn 5 on lap one.
Grosjean continued, but was handed a 10-second time penalty for causing a collision, and ultimately finished 15th.
10- 12 Nov 2017 Autódromo José Carlos Pace, São Paulo
1 | 5 | Sebastian Vettel | FERRARI | 71 | 1:31:26.262 | 25 |
2 | 77 | Valtteri Bottas | MERCEDES | 71 | +2.762s | 18 |
3 | 7 | Kimi Räikkönen | FERRARI | 71 | +4.600s | 15 |
4 | 44 | Lewis Hamilton | MERCEDES | 71 | +5.468s | 12 |
5 | 33 | Max Verstappen | RED BULL RACING TAG HEUER | 71 | +32.940s | 10 |
6 | 3 | Daniel Ricciardo | RED BULL RACING TAG HEUER | 71 | +48.691s | 8 |
7 | 19 | Felipe Massa | WILLIAMS MERCEDES | 71 | +68.882s | 6 |
8 | 14 | Fernando Alonso | MCLAREN HONDA | 71 | +69.363s | 4 |
9 | 11 | Sergio Perez | FORCE INDIA MERCEDES | 71 | +69.500s | 2 |
10 | 27 | Nico Hulkenberg | RENAULT | 70 | +1 lap | 1 |
11 | 55 | Carlos Sainz | RENAULT | 70 | +1 lap | 0 |
12 | 10 | Pierre Gasly | TORO ROSSO | 70 | +1 lap | 0 |
13 | 9 | Marcus Ericsson | SAUBER FERRARI | 70 | +1 lap | 0 |
14 | 94 | Pascal Wehrlein | SAUBER FERRARI | 70 | +1 lap | 0 |
15 | 8 | Romain Grosjean | HAAS FERRARI | 69 | +2 laps | 0 |
16 | 18 | Lance Stroll | WILLIAMS MERCEDES | 69 | +2 laps | 0 |
NC | 28 | Brendon Hartley | TORO ROSSO | 40 | DNF | 0 |
NC | 31 | Esteban Ocon | FORCE INDIA MERCEDES | 0 | DNF | 0 |
NC | 2 | Stoffel Vandoorne | MCLAREN HONDA | 0 | DNF | 0 |
NC | 20 | Kevin Magnussen | HAAS FERRARI | 0 | DNF | 0 |
1 | Lewis Hamilton | GBR | MERCEDES | 345 |
2 | Sebastian Vettel | GER | FERRARI | 302 |
3 | Valtteri Bottas | FIN | MERCEDES | 280 |
4 | Daniel Ricciardo | AUS | RED BULL RACING TAG HEUER | 200 |
5 | Kimi Räikkönen | FIN | FERRARI | 193 |
6 | Max Verstappen | NED | RED BULL RACING TAG HEUER | 158 |
7 | Sergio Perez | MEX | FORCE INDIA MERCEDES | 94 |
8 | Esteban Ocon | FRA | FORCE INDIA MERCEDES | 83 |
9 | Carlos Sainz | ESP | RENAULT | 54 |
10 | Felipe Massa | BRA | WILLIAMS MERCEDES | 42 |
11 | Lance Stroll | CAN | WILLIAMS MERCEDES | 40 |
12 | Nico Hulkenberg | GER | RENAULT | 35 |
13 | Romain Grosjean | FRA | HAAS FERRARI | 28 |
14 | Kevin Magnussen | DEN | HAAS FERRARI | 19 |
15 | Fernando Alonso | ESP | MCLAREN HONDA | 15 |
16 | Stoffel Vandoorne | BEL | MCLAREN HONDA | 13 |
17 | Jolyon Palmer | GBR | RENAULT | 8 |
18 | Pascal Wehrlein | GER | SAUBER FERRARI | 5 |
19 | Daniil Kvyat | RUS | TORO ROSSO | 5 |
20 | Marcus Ericsson | SWE | SAUBER FERRARI | 0 |
21 | Pierre Gasly | FRA | TORO ROSSO | 0 |
22 | Antonio Giovinazzi | ITA | SAUBER FERRARI | 0 |
23 | Brendon Hartley | NZL | TORO ROSSO | 0 |
1 | MERCEDES | 625 |
2 | FERRARI | 495 |
3 | RED BULL RACING TAG HEUER | 358 |
4 | FORCE INDIA MERCEDES | 177 |
5 | WILLIAMS MERCEDES | 82 |
6 | TORO ROSSO | 53 |
7 | RENAULT | 49 |
8 | HAAS FERRARI | 47 |
9 | MCLAREN HONDA | 28 |
10 | SAUBER FERRARI | 5 |
Related News