Marc Marquez claimed his third straight MotoGP victory and the fourth of his remarkable rookie season in the Indianapolis Grand Prix.
The polesitting Honda rider dropped to third at the start as Jorge Lorenzo and Dani Pedrosa got off the line much better.
The title-contending trio then ran in very close company for the first half of the race.
Marquez eventually got ahead of his Honda team-mate with a clever move on the infield, but Lorenzo's Yamaha clung on at the front until half-distance, when Marquez slipped through into Turn 2.
Contrary to expectations, Marquez did not immediately disappear when in the lead, but going into the closing stages he was able to stretch his legs, winning by three and a half seconds.
Pedrosa made it a Honda one-two when he drafted past the fading Lorenzo with two laps left.
Valentino Rossi made a muted start to the race and took his time to work forward from 10th.
But by the end of the race he had caught the battling Cal Crutchlow and Alvaro Bautista. Some incredible and forceful racing resulted before Rossi grabbed fourth on the line by just 0.060s from Crutchlow.
Behind the lonely Stefan Bradl, the Ducatis' race-long battle got even more wild.
Contact between Nicky Hayden and Andrea Dovizioso at the final corner sent both bouncing over the kerbs and allowed Bradley Smith - who had jumped to fourth at the start - to pip them both.
Aleix Espargaro recovered from his qualifying crash to beat Colin Edwards to CRT honours.
Results - 27 laps:
Pos Rider Team/Bike Time/Gap
1. Marc Marquez Honda 44m52.463s
2. Dani Pedrosa Honda +3.495s
3. Jorge Lorenzo Yamaha +5.704s
4. Valentino Rossi Yamaha +19.895s
5. Cal Crutchlow Tech 3 Yamaha +19.955s
6. Alvaro Bautista Gresini Honda +20.061s
7. Stefan Bradl LCR Honda +24.842s
8. Bradley Smith Tech 3 Yamaha +40.690s
9. Nicky Hayden Ducati +40.701s
10. Andrea Dovizioso Ducati +40.823s
11. Andrea Iannone Pramac Ducati +59.868s
12. Aleix Espargaro Aspar Aprilia +1m06.650s
13. Colin Edwards Forward FTR-Kawasaki +1m09.462s
14. Claudio Corti Forward FTR-Kawasaki +1m15.207s
15. Hiroshi Aoyama Avintia FTR-Kawasaki +1m20.159s
16. Hector Barbera Avintia FTR-Kawasaki +1m25.879s
17. Danilo Petrucci Ioda-Suter-BMW +1m29.616s
18. Michael Laverty PBM-Aprilia +1m36.388s
19. Bryan Staring Gresini FTR-Honda +1 lap
Yonny Hernandez PBM Aprilia 17 laps
Lukas Pesek Ioda-Suter-BMW 14 laps
Randy de Puniet Aspar Aprilia 5 laps
Blake Young Attack APR-Kawasaki 0 laps