Lewis Hamilton won the United States Grand Prix after a tight battle with Sebastian Vettel as Fernando Alonso kept the title fight alive.
Hamilton's McLaren tracked Vettel's Red Bull throughout the race and finally passed him with 14 laps to go.
Alonso's third place means he is 13 points behind Vettel in the standings.
The title will now be settled in the final race of the season in Brazil next weekend, with 25 points available for victory.
For Alonso to win the drivers' crown, he needs a victory in Brazil with Vettel finishing lower than fourth.
Second place for Alonso would mean he would only win the title in the event of Vettel not finishing in the top seven, while third spot for Alonso would require Vettel to finish lower than ninth.
One title was settled in Austin, Texas, though - Red Bull have won the constructors' championship.
"To be able to beat Red Bull and Sebastian is definitely a tough challenge but we managed to do it," said Hamilton.
Ferrari's Felipe Massa held off McLaren's Jenson Button to take fourth.
The Brazilian fought his way up from 11th place after Ferrari gave him a deliberate five-place penalty in order to help team-mate Alonso.
By starting the race from seventh on the grid, rather than eighth, Alonso would be on the cleaner side of circuit, where there is significantly more grip.
The Spaniard made good use of the strategy, making a superb start to climb into fourth place by the time the field had rounded the first corner.
Ahead of him, Red Bull's Mark Webber had passed Hamilton to take second as Vettel converted pole into a lead.
The German, though, was unable to pull his usual gap on his pursuers and Hamilton chased him throughout the first stint.
Vettel eked out a three-second lead by the time of their only pit stops, but after that Hamilton closed in again.
The Briton spent several laps within a second of Vettel but not quite close enough to pass before taking advantage of the leader being held up by an HRT to pass him down the straight into Turn 12 on lap 42.
Vettel stayed within two seconds of the McLaren right until the end of the race, but was never close enough to attempt a pass.
"I wasn't too happy to send a nice big invitation to Lewis when I had to go through [Narain] Karthikeyan [of HRT]," said Vettel.
"[Lewis] was right behind in the DRS zone. He took that opportunity, fair enough, down the straight and he passed me. I tried to defend but I knew he would have so much more speed. I was obviously not too happy.
"Lewis had one chance and he took it. After that I tried to stay with him but there wasn't much between us."
Hamilton said: "Traffic usually catches me [rather than my opponents] out so I was glad it worked slightly in my favour."
Alonso was promoted to third place when Webber retired with an alternator failure on lap 17.
The Spaniard looked like he might face a challenge from Lotus's Kimi Raikkonen, but a slow pit stop meant the Finn rejoined just behind the Ferrari, which then pulled away.
"We know that our championship [hopes stay] alive maybe thanks to the first laps," said Alonso.
"We are always qualifying around seventh or eighth and we finish the first lap in first three or four positions, and after that the race becomes easier.
"Today we knew there was a good chance [to] try to overtake people in the first corner. If we are in the leading group we can always keep the pace. Today was not possible to keep the pace with these two guys. This podium is like a victory for us."
Raikkonen, much slower on the 'hard' tyres the leaders had to use in the second stint, dropped back and slipped behind Massa and McLaren's Jenson Button to finish sixth ahead of team-mate Romain Grosjean.
Button drove a strong race to climb up from 12th on the grid, using a reverse strategy from the leaders.
He started on the 'hard' tyre and ran a long first stint, by the end of which he was up to third place.
His stop on lap 36 dropped him back behind Grosjean, but he managed to pass both Lotus cars before the end as Massa never let him get closer than five seconds.
Force India's Nico Hulkenberg finished eighth, holding off Pastor Maldonado, who won a private battle with Williams team-mate Bruno Senna to take ninth ahead of the Brazilian.
Race top 10
1. Lewis Hamilton - McLaren 1:35:55.269
2. Sebastian Vettel - Red Bull +0.675
3. Fernando Alonso - Ferrari +39.229
4. Felipe Massa - Ferrari +46.013
5. Jenson Button - McLaren +56.432
6. Kimi Raikkonen - Lotus +1:04.425
7. Romain Grosjean - Lotus +1:10.313
8. Nico Hulkenberg - Force India +1:13.792
9. Pastor Maldonado - Williams +1:14.525
10. Bruno Senna - Williams +1:15.133