Maverick Vinales took a superb maiden 125cc victory in only his fourth series start at Le Mans, beating hitherto dominant championship leader Nico Terol in a final-corner shootout.
Having been unbeatable so far this year, Terol looked like he was on course for another easy victory at first, but Vinales was able to cling on behind him.
The pair worked together to break away from the pack, allowing each other past on several occasions, before Terol made what he hoped would be the decisive move with four laps to go.
He could not shake off Vinales, though, with the 16-year-old Blusens Aprilia rider all over the back of Terol's Aspar Aprilia around the last lap.
At the final corner, Terol made a slight error and Vinales was able to slice down the inside and win a drag race to the line by just 0.048sec.
What began as an eight-bike tussle for third was finally won by Efren Vazquez, the Ajo Derbi rider gaining his first podium of 2011. He broke away from Terol's teammate Hector Faubel and fellow Ajo man Johann Zarco, with Jonas Folger and Sandro Cortese chasing them home.
Results - 24 laps:
Pos Rider Team/Bike Time/Gap
1. Maverick Vinales Blusens Aprilia 42m00.505s
2. Nicolas Terol Aspar Aprilia + 0.048s
3. Efren Vazquez Ajo Derbi + 6.836s
4. Hector Faubel Aspar Aprilia + 8.298s
5. Johann Zarco Ajo Derbi + 8.590s
6. Jonas Folger Ajo Aprilia + 10.236s
7. Sandro Cortese Germany Aprilia + 10.667s
8. Sergio Gadea Blusens Aprilia + 15.642s
9. Miguel Oliveira Andalucia Aprilia + 22.838s
10. Luis Salom RW Aprilia + 30.901s
11. Alberto Moncayo Andalucia Aprilia + 33.796s
12. Simone Grotzkyj Phonica Aprilia + 34.413s
13. Louis Rossi Matteoni Aprilia + 34.696s
14. Adrian Martin Aspar Aprilia + 41.236s
15. Alexis Masbou WTR-Ten10 Aprilia + 56.943s
16. Hiroki Ono Caretta KTM + 57.409s
17. Danny Kent Ajo Aprilia + 57.763s
18. Jasper Iwema Ongetta Aprilia + 57.823s
19. Zulfahmi Khairuddin Ajo Derbi + 57.884s
20. Luigi Morciano Italia Aprilia + 1m02.089s
21. Jakub Kornfeil Ongetta Aprilia + 1m02.713s
22. Taylor Mackenzie Phonica Aprilia + 1m25.418s
23. Giulian Pedone Phonica Aprilia + 1m42.498s
24. Francesco Mauriello WTR-Ten10 Aprilia + 1m43.885s
25. Peter Sebestyen Caretta KTM + 1m44.903s
26. Alessandro Tonucci Italia Aprilia + 1m45.356s
27. Kevin Szalai MVT Aprilia + 1 lap
28. Kevin Thobois RMS Honda + 1 lap
Joan Perello Matteoni Aprilia 20 laps
Danny Webb Mahindra 17 laps
Marcel Schrotter Mahindra 17 laps
Harry Stafford Ongetta Aprilia 13 laps
Niklas Ajo TT Motion Aprilia 3 laps