Andrea Dovizioso kept the MotoGP title race alive - just - by winning the Malaysia Grand Prix in wet conditions at Sepang on Sunday.
The Italian passed Ducati team-mate Jorge Lorenzo with five laps remaining to claim the victory he needed.
Championship leader Marc Marquez finished fourth, his advantage atop the standings cut to 21 points with one race left this season.
The Repsol Honda rider appeared set to seal a fourth world title with Dovizioso trailing Lorenzo, but the former passed his team-mate to keep the championship battle alive.
Marquez is still in a great position to secure the title at the Valencia Grand Prix next month, when the defending champion need only finish in the top 11 places to retain his crown.
Johann Zarco finished behind Dovizioso and Lorenzo - who was denied his first win of the season - on the podium, having led for most of the early going.
Dani Pedrosa started from pole, but he quickly fell outside the top three as Zarco pulled away early in the 20-lap race.
However, Lorenzo took the lead and Dovizioso also moved past Zarco after an earlier battle with Marquez.
Marquez had a couple of nervy moments as Lorenzo pulled clear, with only Dovizioso threatening.
But Lorenzo was passed with five laps remaining, the title race still alive heading into the final round.
IN THE POINTS
1. Andrea Dovizioso (Ducati) 44:51.497
2. Jorge Lorenzo (Ducati) +0.743s
3. Johann Zarco (Monster Yamaha Tech 3) +9.738s
4. Marc Marquez (Repsol Honda) +17.763s
5. Dani Pedrosa (Repsol Honda) +29.144s
6. Danilo Petrucci (OCTO Pramac Racing) +30.380s
7. Valentino Rossi (Movistar Yamaha) +30.769s
8. Jack Miller (EG 0,0 Marc VDS) +35.238s
9. Maverick Vinales (Movistar Yamaha) +38.053s
10. Pol Espargaro (Red Bull KTM Factory Racing) +39.847s
11. Alvaro Bautista (Pull&Bear Aspar) +42.559s
12. Bradley Smith (Red Bull KTM Factory Racing) +44.602s
13. Scott Redding (OCTO Pramac Racing) +48.696s
14. Hector Barbera (Reale Avintia Racing) +50.058s
15. Cal Crutchlow (LCR Honda) +50.705s
1. Marc Marquez (Repsol Honda) 282 points
2. Andrea Dovizioso (Ducati) 261 points
3. Maverick Vinales (Movistar Yamaha) 226 points
4. Valentino Rossi (Movistar Yamaha) 197 points
5. Dani Pedrosa (Repsol Honda) 185 points
The season ends with the Valencia Grand Prix in Spain on November 12, when Marquez will look to seal the title.