Jorge Lorenzo beat Marc Marquez to win the Japanese Grand Prix and ensure the championship title fight will go down to the final race of the season.
Championship leader Marquez needed to win the race and for Lorenzo to finish third or lower to win the title.
But pole-sitter Lorenzo, 26, led from start to finish for his second successive win and cut the gap at the top of the standings to 13 points.
Marquez finished second, with Britain's Cal Crutchlow in seventh.
The result means the championship will be decided in Valencia on 10 November, where a fourth-place finish will guarantee Marquez becomes the youngest champion in the 64 years of the premier class of grand prix racing.
Spain's Dani Pedrosa was third while Crutchlow's compatriot and team-mate Bradley Smith ended in eighth.
"This track is normally better for them so winning here in Honda's home race is a pleasure," reigning world champion Lorenzo said.
"It's been a really hard, physical race but I really kept my concentration and I really wanted this victory."
Marquez missed the chance to take the title in the previous race in Australia, where he was disqualified for failing to pit at the required time, as Lorenzo took victory.
That meant Marquez arrived in Japan with an 18-point lead, but would secure the championship if he picked up eight more points than Lorenzo.
Thick fog prevented any practice from taking place on Friday, but qualifying went ahead on Saturday and Lorenzo took pole.
He made the ideal start to Sunday's race, getting away cleanly as Marquez initially dropped to third as he was passed by Valentino Rossi.
But the Italian could not keep the pace near the front and as he dropped away, Marquez reclaimed second, leaving only Lorenzo in his sights.
Marquez pushed for the lead midway through the race but the young rookie made mistakes at Turn 11 and Turn 1 and opted to play it safe, giving Lorenzo some breathing space and he went on to win by 3.1 seconds ahead of his compatriot.
"I tried to follow Jorge. In the middle of the race it looked like we were stronger but in the end I saw that Jorge tried to push a little bit more," said Marquez.
"I felt I was too much on the limit and I said 'okay, 20 points for the championship'. Valencia will be another race and very interesting for sure."
Alvaro Bautista and Stefan Bradl rounded out the top five, with Rossi coming home sixth. Nicky Hayden finished ninth, with Andrea Dovizioso 10th.
1. Jorge Lorenzo (Spa) Yamaha 42'34.291
2. Marc Marquez (Spa) Repsol Honda 42'37.479
3. Dani Pedrosa (Spa) Repsol, Honda 42'38.883
4. Alvaro Bautista (Spa) Gresini Honda 42'54.046
5. Stefan Bradl (Ger) LCR Honda 42'57.101
6. Valentino Rossi (Ita) Yamaha 42'58.928
7. Cal Crutchlow (Gbr) Tech 3 Yamaha 43'01.787
8. Bradley Smith (Gbr) Tech 3 Yamaha 43'05.260
9. Nicky Hayden (Usa) Ducati 43'11.301
10. Andrea Dovizioso (Ita) Ducati 43'17.235