Nico Terol increased his lead of the 125cc World Championship to 26 points after taking a dominant victory at the Indianapolis Grand Prix.
The 22-year-old Spaniard made a great getaway from pole position and pulled his Aspar Aprilia into an immediate one-second lead.
He continued to edge away by almost a second a lap during the first half of the race and was able to back his pace off considerably during the closing stages as he collected his sixth win of the season by 3.633s.
There was a three-way battle for second place early on between Terol's team-mate Hector Faubel, Johann Zarco's Ajo Derbi and the Blusens Aprilia of Maverick Vinales, which took on a different look on every lap.
Vinales moved into second place after ducking out of Zarco's tow into Turn 1 on lap 14 and was then given breathing space as the Frenchman had a lurid out-of-the-saddle moment exiting the final corner on the following lap and dropped back to seventh.
Although he looked secure in the position, he was soon under threat from Sandro Cortese, who had run sixth early on by cut his way past the battling group during the middle stages of the race.
Cortese edged his Team Germany Aprilia past Vinales into Turn 10 with four laps left, but did not stay there for long, the pair swapping places on numerous occasions before the end of the race and being joined in the battle by Gadea.
Vinales grabbed second place for good as the trio began the final lap with Cortese just 0.1s behind him and Gadea fourth.
Behind them Zarco made up ground by passing firstly Faubel and then his own Ajo team-mate Efren Vazquez to climb to fifth and maintain his second place in the world championship points. He hung on to the place ahead of Vazquez with Faubel seventh.
Miguel Oliveira finished eighth on his Andalucia Aprilia while Jonas Folger (Ajo Aprilia) and Jakub Kornfeil (Ongetta Aprilia) completed the top 10.
Britain's Danny Kent had been part of the battle for the big points early on as he lay seventh, right behind Cortese. But the Ajo Aprilia rider fell to 18th after running off-track and into the gravel trap at Turn 13 on the ninth lap. He spent the rest of the race working his way back through the field and came home 13th.
Pos Rider Team/Bike Result/Gap 1. Nico Terol Aspar Aprilia 42m11.978s 2. Maverick Vinales Blusens Aprilia + 3.633s 3. Sandro Cortese Germany Aprilia + 3.737s 4. Sergio Gadea Blusens Aprilia + 4.227s 5. Johann Zarco Ajo Derbi + 14.186s 6. Efren Vazquez Ajo Derbi + 14.200s 7. Hector Faubel Aspar Aprilia + 18.477s 8. Miguel Oliveira Andalucia Aprilia + 23.992s 9. Jonas Folger Ajo Aprilia + 24.239s 10. Jakob Kornfeil Ongetta Aprilia + 38.748s 11. Simone Grotzki Phonica Aprilia + 39.194s 12. Louis Rossi Matteoni Aprilia + 40.203s 13. Danny Kent Ajo Aprilia + 44.088s 14. Alexis Masbou Caretta KTM + 45.201s 15. Luigi Morciano Italia FMI Aprilia + 46.037s 16. Jasper Iwema Ongetta Aprilia + 58.451s 17. Brad Binder RW Aprilia 1m12.015s 18. Francesco Mauriello WTR-Ten10 Aprilia 1m12.898s 19. Zulfahmi Khairuddin Ajo Derbi + 1m14.294s 20. Joan Perello Matteoni Aprilia + 1m23.947s 21. Taylor Mackenzie Phonica Aprilia + 1m29.369s 22. Peter Sebestyen Caretta KTM + 1m29.813s 23. Alessandro Tonucci Italia FMI Aprilia + 1m34.296s 24. Giulian Pedone Phonica Aprilia + 2 laps Retirements Marcel Schrotter Mahindra 22 laps Adrian Martin Aspar Aprilia 20 laps Sturla Fagerhaug WTR-Ten10 Aprilia 11 laps Niklas Ajo TT Motion Aprilia 7 laps Harry Stafford Ongetta Aprilia 7 laps