Jorge Martin recorded his third successive MotoGP sprint win at Motegi, fighting off KTM's Brad Binder in the Saturday race.
It meant Martin has now closed to just eight points behind long-time championship leader Pecco Bagnaia, who completed the podium.
Having beaten Bagnaia to pole by 0.171s, Martin got a much better launch off the line than his title rival - which meant he wasn't vulnerable to the fast-starting KTMs, but Bagnaia was.
The championship leader had to yield into Turn 1 to his former team-mate Jack Miller, then was overtaken into Turn 2 - the second part of the double-right - by Binder.
Binder acted quickly from there, executing a forceful overtake on his fellow KTM at the end of the back straight and latching on to the back of Martin, preventing a breakaway by the Pramac man.
But he could only do so in the first half of the 12-lap race, with Martin eventually starting to press home his advantage.
The main intrigue in the race had played out behind them, with a long battle between Miller and Bagnaia for the final podium spot as the leading duo left them behind.
Having followed Miller closely for the several laps, Bagnaia finally found his overtaking opportunity on the third-to-last tour - pressuring Miller to run wide at the end of the back straight, which then enabled Bagnaia to sweep around his outside at the next corner, Turn 12.
Honda rider Marc Marquez had run fifth in the opening stages of the race, even shadowing Bagnaia for an extended period, but then dropped back into the clutches of the chasing pack.
After fighting off Johann Zarco initially, Marquez had to contend with another satellite Ducati in Marco Bezzecchi - who had overtaken the Frenchman at the end of the back straight.
But when Bezzecchi tried to do the same with Marquez, they both ran very wide, Marquez rejoining in sixth behind Zarco and Bezzecchi ending up eighth behind Aleix Espargaro.
Zarco ultimately went on to escape into the distance, finishing just 0.121s behind Miller who the Pramac man had reeled in massively in the closing laps, while Bezzecchi eventually did work his way past Marquez with an overtake at the left-hander Turn 7.
It meant the VR46 Ducati rider at least salvaged sixth place from a day punctuated by his heavy qualifying crash. He's now 47 points off the championship lead.
Fabio Di Giannantonio (Gresini Ducati) and Maverick Vinales (Aprilia) completed the points-scoring top nine behind Marquez, both moving up a spot when Vinales' team-mate Espargaro pulled into the pits to retire with a yet-unspecified issue.
While four manufacturers scored points, Yamaha was nowhere near, Fabio Quartararo compromised by a bad start and only recovering to 15th - which still meant he was the lead Yamaha runner at the flag.
Sprint top 10
1 Jorge Martin (Pramac Ducati)
2 Brad Binder (KTM)
3 Pecco Bagnaia (Ducati)
4 Jack Miller (KTM)
5 Johann Zarco (Pramac Ducati)
6 Marco Bezzecchi (VR46 Ducati)
7 Marc Marquez (Honda)
8 Fabio di Giannantonio (Gresini Ducati)
9 Maverick Vinales (Aprilia)
10 Raul Fernandez (RNF Aprilia)