Marc Marquez came from the back of the field to claim his eighth victory of the Moto2 season at Motegi.
The result gives Marquez a shot at clinching the world championship in Malaysia next week, despite title rival Pol Espargaro's best efforts to hang on to him.
Victory looked unlikely when Marquez stalled on the startline, getting away virtually last in the 32-bike field.
But Marquez's recovery was incredible. He was back up to ninth by the end of lap one, and into podium contention by lap five.
Espargaro's Pons team-mate Esteve Rabat had taken over from early leader Scott Redding to make an initial break at the front by that time. Rabat stayed ahead as long as he could, before Marquez made it through on lap nine.
Despite the speed of his comeback ride, Marquez was unable to escape once in front, as Espargaro tried his utmost to keep the pressure on.
A late error seemed to have cost Espargaro his chance, before a mighty final lap got him back on Marquez's tail.
He could not beat the 2013 Honda MotoGP rider, though, as Marquez opened up a 53-point championship lead with victory.
Rabat hung on to a podium finish in third.
Redding fended off Tom Luthi to take fourth, while Simone Corsi resisted top local rider Takaagi Nakagami to earn sixth.
Former champion Toni Elias ran as high as third on his return to Moto2 with Italtrans, before crashing out in the closing stages.
Andrea Iannone's miserable weekend did not improve in the race. The regular frontrunner finished a quiet 18th.
Results - 23 laps: Pos Rider Team/Bike Time/Gap 1. Marc Marquez Monlau Suter 42m56.171s 2. Pol Espargaro Pons Kalex + 0.415s 3. Esteve Rabat Pons Kalex + 9.584s 4. Scott Redding Marc VDS Kalex + 11.069s 5. Thomas Luthi Paddock Suter + 11.595s 6. Simone Corsi Ioda FTR + 18.383s 7. Takaaki Nakagami Italtrans Kalex + 18.672s 8. Johann Zarco JIR Motobi + 28.226s 9. Axel Pons Pons Kalex + 28.451s 10. Dominique Aegerter Technomag-CIP Suter + 28.599s 11. Julian Simon Avintia Suter + 28.971s 12. Anthony West QMMF Speed Up + 29.609s 13. Jordi Torres Aspar Suter + 29.815s 14. Xavier Simeon Tech 3 + 39.783s 15. Mike di Meglio Kiefer Kalex + 39.868s 16. Yuki Takahashi Forward FTR + 39.970s 17. Mika Kallio Marc VDS Kalex + 40.763s 18. Andrea Iannone Speed Master Speed Up + 40.900s 19. Nicolas Terol Aspar Suter + 44.379s 20. Alex de Angelis Forward FTR + 46.507s 21. Ratthapark Wilairot Gresini Suter + 55.561s 22. Ricard Cardus Arguinano AJR + 55.815s 23. Tomoyoshi Koyama Technomag-CIP Suter + 56.051s 24. Marcel Schrotter SAG Bimota + 56.492s 25. Gino Rea Gresini Suter + 58.417s 26. Alessandro Andreozzi Speed Master Speed Up + 1m12.398s 27. Elena Rosell QMMF Speed Up + 1m19.841s 28. Eric Granado JIR Motobi + 1m10.787s 29. Jesko Raffin Switzerland Kalex + 1 lap Retirements: Toni Elias Italtrans Kalex 19 laps Bradley Smith Tech 3 3 laps Kohta Nozane SAG FTR DSQ