Nico Rosberg held off Mercedes team-mate and title rival Lewis Hamilton to win a race-long battle at the Brazilian Grand Prix.
Hamilton fought back to close a seven-second margin after a spin at about one-third distance just as he appeared to be set to take the lead.
But Rosberg did just enough to hold him off in a tense final part of the race.
It reduces Hamilton's lead in the title race to 17 points, with 50 available in the final race in Abu Dhabi.
"I'm very happy with the whole weekend," said Rosberg. "I've been feeling comfortable in the car and controlled the gap to Lewis in the race."
Hamilton can win the title by finishing second to Rosberg in Abu Dhabi on 23 November, even though double points will be on offer.
But the Englishman may rue a half-spin on lap 28 which, as it turned out, decided the race in Brazil.
|Double jeopardy: Hamilton v Rosberg for the title|
|Hamilton now has a 17-point lead over Rosberg with a maximum of 50 points remaining at the final race in Abu Dhabi. Hamilton can win the title by finishing second to Rosberg in Abu Dhabi. Third or lower and Rosberg is champion if he wins.All the title permutations for the final race|
Rosberg had made his second pit stop on lap 26, with Hamilton less than two seconds behind him.
Hamilton stayed out. He set the fastest lap of the race to that point next time around, having set three sectors that were the fastest anyone had set up to that point.
The Mercedes engineers calculated that his first lap had not been enough to leapfrog him ahead and decided to keep him out for one more lap to give him extra time to build the advantage he needed.
But he dropped a wheel on to the white line on the entry to Turn Four, the Descido do Lago and ran wide into the run-off area, half-spinning.
Hamilton said: "Ultimately it cost me the win. I was a much quicker up to that point. I went a second quicker, thought I was going to pit on that lap, used all my tyres and on the next lap there was nothing left.
"I locked the rear and went wide. No-one's mistake but mine."
The incident cost Hamilton seven seconds, which he reduced to two over the course of their third stint.
Rosberg came in first for his final stop, on lap 50, with Hamilton making his a lap later, and their battle resumed with them half a second apart on lap 52, 19 from the finish.
Hamilton, clearly faster, stayed within a second of Rosberg for the remainder of the race but was never close enough to make a passing attempt.
Rosberg thus took his fifth win - his first since Germany back in July - while Hamilton has 10 victories.
Hamilton added: "Overall, I'm really happy. I came back, I clearly had a lot more pace than Nico, I closed down the seven seconds and I'm looking forward to the next race."
Williams's Felipe Massa took third, despite a five-second penalty for speeding in the pit lane and pulling into the McLaren pits by mistake at his final stop.
The two incidents cost him time but he was still comfortably able to hold off McLaren's Jenson Button.
The 2009 world champion's performance may well give McLaren pause for thought as they decide who to keep to partner Fernando Alonso, who will join the team next year. Button's team-mate Kevin Magnussen was a less convincing ninth after completing the first lap on Button's tail.
Button was initially disputing fourth place with Williams's Valtteri Bottas, but the Finn was taken out of contention by two slow pit stops.
In the first Bottas was delayed by an adjustment to his seat belts and in the second a front-wing adjustment was slower than normal. He ended up finishing 10th.
Alonso took sixth ahead of team-mate Kimi Raikkonen, who he had to pass in an entertaining battle in the closing laps after Raikkonen switched to a two-stop strategy. He was the only driver to make such an approach work.
Force India's Nico Hulkenberg was eighth, while Red Bull's Daniel Ricciardo, who was running behind Alonso, retired on lap 39 with a suspension failure.