Marc Marquez reduced Stefan Bradl's Moto2 championship lead to a mere six points by taking his seventh win of the season at Aragon, as a problem for Bradl dropped him to eighth.
The title rivals had made a spectacular start to the race, launching into an immediate three-way battle with Scott Redding that included the lead being exchanged repeatedly on the first lap alone. That level of frenetic dicing continued for the first two thirds of the race, with Andrea Iannone, Simone Corsi and Alex de Angelis joining in, and all taking a turn in the lead, as Aleix Espargaro, Julian Simon and Mike di Meglio started tagging onto the back of the train too.
Marquez kept fighting to the front of the pack but failing to break away - at one stage running wide off the track just as he seemed set to escape.
The crunch moment came on lap 14, when Speed Master rider Iannone made a big move on Marquez at the first corner, slid slightly off course, and narrowly avoided taking the race leader out while also breaking up the pack a little.
While Iannone accelerated back on in third place, Marquez got some clear air at last and started cruising away, going on to win by 2.466 seconds. Iannone reclaimed second, with Corsi (Ioda) and de Angelis (JIR) chasing him home.
The rest of the erstwhile lead group became detached - and grew into an even bigger gaggle, with just 3.1s covering fifth to 17th places at the flag.
Bradl seemingly began to suffer a problem with his Kiefer Kalex and drifted down the order to finish eighth, behind Espargaro, Bradley Smith and Thomas Luthi. Early leader Redding fell right back to 15th.
Results - 21 laps:
Pos Rider Team/Bike Time/Gap
1. Marc Marquez Catalunya Suter 40m20.575s
2. Andrea Iannone Speed Master Suter + 2.466s
3. Simone Corsi Ioda FTR + 2.574s
4. Alex de Angelis JIR Motobi + 3.054s
5. Aleix Espargaro Pons Kalex + 10.831s
6. Bradley Smith Tech 3 + 10.870s
7. Thomas Luthi Interwetten Suter + 11.005s
8. Stefan Bradl Kiefer Kalex + 11.212s
9. Dominique Aegerter Technomag-CIP Suter + 11.810s
10. Mika Kallio Marc VDS Suter + 11.939s
11. Anthony West MZ + 12.108s
12. Mike di Meglio Tech 3 + 12.114s
13. Max Neukirchner MZ + 12.180s
14. Pol Espargaro Speed Up FTR + 12.908s
15. Scott Redding Marc VDS Suter + 13.329s
16. Esteve Rabat Blusens FTR + 13.875s
17. Julian Simon Aspar Suter + 13.954s
18. Xavier Simeon Tech 3 + 15.251s
19. Claudio Corti Italtrans Suter + 18.470s
20. Jordi Torres Aspar Suter + 20.128s
21. Randy Krummenacher Kiefer Kalex + 38.974s
22. Alex Baldolini Pons Kalex + 39.072s
23. Kenny Noyes Avintia FTR + 39.340s
24. Tomoyoshi Koyama Technomag-CIP Suter + 48.695s
25. Ricard Cardus QMMF Moriwaki + 48.843s
26. Santiago Hernandez SAG FTR + 1m02.670s
27. Sergio Gadea G22 Moriwaki + 1m05.633s
28. Joan Olive Castello FTR + 1m06.619s
29. Valentin Debise Speed Up FTR + 1m11.832s
30. Robertino Pietri Italtrans Suter + 1m27.512s
31. Yuki Takahashi Gresini Moriwaki + 1m31.402s
32. Mashel Al Naimi QMMF Moriwaki + 1m33.725s
33. Elena Rosell Aspar Suter + 1m36.548s
Michele Pirro Gresini Moriwaki 17 laps
Jules Cluzel Forward Suter 9 laps
Ratthapark Wilairot SAG FTR 9 laps
Raffaele de Rosa Forward Suter 9 laps
Mattia Pasini Ioda FTR 3 laps