Johann Zarco finally scored his maiden 125 win after a race-long duel with title rival Nicolas Terol at Motegi.
The Ajo Derbi rider finally broke a run which had seen him finish runner-up in six of the last eight races, including at Mugello and Misano where he also started on pole.
Motegi initially looked like it might be headed in a similar direction as Aspar's championship leader Nico Terol jumped Zarco at the start, before team-mate Hector Faubel also worked his way past to demote Zarco to third.
The Frenchman fought back however, and was second at the halfway stage as 0.3s covered the top three.
He kept the pressure up and, as Faubel was gradually dropped, made his move on the exit of Turn 1 on lap 13.
Terol tucked into his slipstream but on lap 15 made an uncharacteristic error that broke the gap between the duo, and also Terol's momentum. He brought the bike home in second to minimise the damage done by Zarco's victory, which eventually stretched past the 5s mark.
Faubel was very nearly caught at the finish by 16-year-old Blusens rider Maverick Vinales, who had to start from the pits after breaking his chain on his way to the grid.
Vinales simply scythed his way through the field, despatching rider after rider to eventually come home fourth and consolidate his own third place in the championship.
A four-way Aprilia battle for fifth was eventually won by Sandro Cortese (Germany Aprilia), with Jonas Folger (Ajo), Alberto Moncayo (Andalucia) and Adrian Martin (Aspar) all finishing within 1s.
Ajo Derbi's Efren Vazquez was also involved in the scrap but retired from the race with bike issues on lap eight.
Danny Kent (Ajo Aprilia) came through from 18th on the grid to finish ninth ahead of Alessandro Tonucci (Italia FMI Aprilia).