Nico Terol took his eighth 125cc victory of the season at Aragon and stretched his championship lead to 36 points.
His polesitting Aspar team-mate Hector Faubel did his utmost to stop Terol's title rival Johann Zarco from getting second place, only to crash at the final corner. Terol had moved ahead of Faubel to take the lead at the start and was not headed thereafter.
Zarco (Ajo Derbi) was shuffled back to sixth off the line, got back to third within half a lap, then dropped to fifth again as he battled with Blusens' Maverick Vinales and Team Germany's Sandro Cortese. It took until lap five for Zarco to finally clear Vinales and set off after Faubel. The Frenchman got past his Spanish rival on lap nine, but could not shake him off, and they continued to swap places as Terol pulled ever further away.
Zarco held the place going onto the last lap, with Faubel trying a final move into the last corner - only to lose control as he turned in and have a high-speed low-side. He appeared to escape serious injury, and Zarco avoided the crash and continued to take second, 7.4 seconds behind Terol. Vinales was a lonely third in the end.
The battle for what became fourth was by far the highlight of the race, as a large pack of bikes repeatedly went three and four abreast in some amazingly bold dicing. Luis Salom emerged in front, just ahead of Efren Vazquez, Cortese, Danny Kent and Alberto Moncayo. Louis Rossi had been part of this group too and contending for potentially his best 125cc result yet before crashing out.
Results - 20 laps:
Pos Rider Team/Bike Time/Gap
1. Nicolas Terol Aspar Aprilia 40m26.726s
2. Johann Zarco Ajo Derbi + 6.771s
3. Maverick Vinales Blusens Aprilia + 18.929s
4. Luis Salom RW Aprilia + 27.469s
5. Efren Vazquez Ajo Derbi + 27.472s
6. Sandro Cortese Germany Aprilia + 27.740s
7. Danny Kent Ajo Aprilia + 27.750s
8. Alberto Moncayo Andalucia Aprilia + 27.778s
9. Adrian Martin Aspar Aprilia + 43.009s
10. Jonas Folger Ajo Aprilia + 49.090s
11. Marcel Schrotter Mahindra + 53.876s
12. Luigi Morciano Italia FMI Aprilia + 56.395s
13. Jakub Kornfeil Ongetta Aprilia + 57.513s
14. Alessandro Tonucci Italia FMI Aprilia + 1m07.215s
15. Danny Webb Mahindra + 1m14.906s
16. Sturla Fagerhaug WTR-Ten10 Aprilia + 1m31.266s
17. Manuel Tatasciore Phonica Aprilia + 1m36.871s
18. Giulian Pedone Phonica Aprilia + 1m40.668s
19. Damien Raemy Caretta KTM + 1m58.898s
20. Pedro Rodriguez DVJ Aprilia + 1 lap
Hector Faubel Aspar Aprilia 19 laps
Zulfahmi Khairuddin Ajo Derbi 18 laps
Harry Stafford Ongetta Aprilia 16 laps
Josep Rodriguez Blusens Aprilia 11 laps
Miguel Oliveira Andalucia Aprilia 7 laps
Niklas Ajo TT Motion Aprilia 7 laps
Francesco Mauriello WTR-Ten10 Aprilia 7 laps
Taylor Mackenzie Phonica Aprilia 6 laps
Louis Rossi Matteoni Aprilia 5 laps
Kevin Hanus Hanusch Honda 5 laps
Alexis Masbou Caretta KTM 4 laps
Jasper Iwema Ongetta Aprilia 1 lap
Joan Perello Matteoni Aprilia 0 laps