Maverick Vinales extended his advantage at the top of the Moto3 points with a faultless ride to victory at Le Mans.
The championship leader passed Jonas Folger for the lead on lap nine and kept Alex Rins at bay to secure his second win in a row and move 13 points clear in the title fight.
Rins slipped back on the final two laps as Luis Salom harried him for second, but the Monlau KTM just held off the similar Ajo bike.
Folger led the first stage of the race, passing polesitter Vinales around the outside as their fellow front row man Miguel Oliveira dropped back to sixth after a poor getaway.
As the front two swapped places, Oliveira's recovery was short-lived as he crashed his Mahindra at the Dunlop chicane on lap five.
Having shadowed Folger for the first third of the race, Vinales made his move at the start of the ninth lap, slipstreaming the Aspar KTM and taking the lead into the first corner.
Rins then passed Folger for 2nd at the Turn 7 chicane and the German ran straight on, allowing Salom through for 3rd.
Folger's attempts to challenge the established front three looked to be reignited with eight laps to go as he set the fastest lap of the race, but it proved to be a false dawn as he gradually slipped back.
Rins set a new fastest lap as he reeled in Vinales, and hastled him until the penultimate tour when Salom made a late, and ultimately unsuccessful, bid for the second step of the podium.
Folger eventually finished a lonely fourth, 15s behind the leader but even further in front of Alex Marquez and Jakub Kornfeil in fifth and sixth.
A multi-bike scrap for seventh ended when Zulfahmi Khairuddin spectacularly lost control of his Ajo KTM, taking Niklas Ajo's Tecno machine with him.
Results - 24 laps: Pos Rider Bike Time/Gap 1. Maverick Vinales Laglisse KTM 42m05.448s 2. Alex Rins Monlau KTM +1.264s 3. Luis Salom Ajo KTM +1.387s 4. Jonas Folger Aspar Kalex-KTM +14.593s 5. Alex Marquez Monlau KTM +37.949s 6. Jakub Kornfeil RW Kalex-KTM +40.295s 7. Romano Fenati Italia FTR-Honda +43.325s 8. Brad Binder Ambrogio Suter-Honda +43.537s 9. Alexis Masbou Ongetta FTR-Honda +45.511s 10. Isaac Vinales Ongetta FTR-Honda +45.674s 11. John Mcphee Caretta-RTG FTR-Honda +51.452s 12. Jack Miller Caretta-RTG FTR-Honda +51.592s 13. Arthur Sissis Ajo KTM +58.713s 14. Alessandro Tonucci Tasca Honda +58.970s 15. Philipp Oettl Paddock Kalex-KTM +1m18.027s 16. Livio Loi Marc VDS Kalex-KTM +1m18.384s 17. Matteo Ferrari Ongetta FTR-Honda +1m23.388s 18. Toni Finsterbusch Kiefer Kalex-KTM +1m27.726s 19. Ana Carrasco Laglisse KTM +1m27.754s 20. Francesco Bagnaia Italia FTR-Honda +1m27.860s 21. Jasper Iwema RW Kalex-KTM +1m28.165s 22. Juanfran Guevara CIP TSR-Honda +1m30.631s 23. Alan Techer CIP TSR-Honda +1m30.841s 24. Eric Granado Aspar Kalex-KTM + 1 lap 25. Hyuga Watanabe Tasca Honda + 1 lap 26. Christophe Arciero ARC Suter + 1 lap Retirements: Lorenzo Baldassarri Gresini FTR-Honda 4 laps Zulfahmi Khairuddin Ajo KTM 5 laps Niklas Ajo Tecno KTM 5 laps Jules Danilo Marc VDS Kalex-KTM 11 laps Niccolo Antonelli Gresini FTR-Honda 12 laps Florian Alt Kiefer Kalex-KTM 18 laps Miguel Oliveira Mahindra 20 laps