Pol Espargaro beat Nico Terol to victory in a spectacular 125cc head to head at Le Mans, as the Spanish duo continued to command this year's championship.
The Tuenti Derbi and Aspar Aprilia riders quickly broke away from the rest of the pack, running in close company and opening up a five-second gap to the battle behind.
Espargaro shadowed Terol for the first 15 laps before making his first pass for the lead. They would swap places three more times in the following laps before Espargaro finally got some breathing space when Terol's penultimate lap attempt at the final corners saw him run slightly wide.
He ran out of time to get back on terms, allowing Espargaro to claim his second win of 2010 with a 0.9s margin.
The fight for third was the most spectacular of the race, as Bradley Smith, Marc Marquez, Efren Vazquez and Sandro Cortese grappled with each other all the way.
Smith held the position going into the closing stages, but Marquez set a new lap record with one lap to go as - despite pain from a shoulder injury - he mounted a final bid to get on the podium.
He slipped ahead when Smith had a slight moment on the last lap, and the Briton's determined attempt to regain the place at the chicane ended up costing him fourth as Vazquez also pounced and forced him wide, while Marquez escaped for third.
Behind Cortese, Esteve Rabat beat Tomoyoshi Koyama to seventh, and Danny Webb emerged at the head of a big group squabbling over ninth.
Pos Rider Bike Time/Gap
1. Pol Espargaro Derbi 41m52.280s
2. Nicolas Terol Aprilia + 0.957s
3. Marc Marquez Derbi + 4.428s
4. Efren Vazquez Derbi + 4.736s
5. Bradley Smith Aprilia + 5.143s
6. Sandro Cortese Derbi + 5.847s
7. Esteve Rabat Aprilia + 11.047s
8. Tomoyoshi Koyama Aprilia + 11.165s
9. Danny Webb Aprilia + 37.808s
10. Luis Salom Aprilia + 39.585s
11. Johann Zarco Aprilia + 40.519s
12. Jasper Iwema Aprilia + 40.817s
13. Jonas Folger Aprilia + 42.149s
14. Randy Krummenacher Aprilia + 44.741s
15. Adrian Martin Aprilia + 46.320s
16. Alexis Masbou Aprilia + 46.503s
17. Alberto Moncayo Aprilia + 46.979s
18. Marcel Schrotter Honda + 59.626s
19. Jakub Kornfeil Aprilia + 59.770s
20. Sturla Fagerhaug Aprilia + 1m04.405s
21. Louis Rossi Aprilia + 1m05.731s
22. Michael van der Mark Lambretta + 1m28.928s
23. Kevin Szalai Honda + 1m47.143s
24. Gregory di Carlo Honda + 1 lap
25. Muhammad Zulfahmi Aprilia + 1 lap
26. Morgan Berchet Honda + 1 lap
Marco Ravaioli Lambretta 18 laps
Riccardo Moretti Aprilia 16 laps
Lorenzo Savadori Aprilia 6 laps