Casey Stoner took his second win of 2011 in the French Grand Prix, but the action all took place in his wake as Marco Simoncelli was penalised for an incident that ended Dani Pedrosa's race, and Valentino Rossi took his first podium with Ducati in third behind Andrea Dovizioso.
Stoner did not have an ideal start and was third into the first corner behind his fast-starting Honda team-mates Pedrosa and Dovizioso.
But it only took two and a half laps for Stoner - who had been quickest in every session this weekend - to calmly make his way back to the front.
Pedrosa stayed with him for a while before falling back into the clutches of Simoncelli (Gresini Honda), who had moved clear of an early battle with Dovizioso and Yamaha's Jorge Lorenzo.
By lap 17 Simoncelli was right with Pedrosa and pushing for second. He made it through once, lost the place again, but then swept around the outside of Pedrosa to reclaim second. As he did so, contact was made, sending Pedrosa into a crash and causing Simoncelli to skitter over the gravel.
While Pedrosa walked away nursing apparent pain in his collarbone, race direction chose to give Simoncelli a ride-through penalty for the tangle.
That meant the spectacular battle between Lorenzo, Dovizioso and Rossi became a fight for second. Lorenzo lost touch when he ran very wide and briefly left the track with three laps to go, leaving Italian compatriots Dovizioso and Rossi to fight it out. Rossi's final chance came into the last corner on the penultimate lap, but he slipped wide enough for Dovizioso to edge back ahead and then resist the Ducati to complete a Honda one-two.
As Lorenzo followed them home, Simoncelli stormed back past Nicky Hayden (Ducati) and Ben Spies (Yamaha) to get fifth.
Hiroshi Aoyama was a lonely eighth on the other Gresini Honda, while Aspar Ducati's Hector Barbera emerged on top of a huge dice with Karel Abraham (Cardion Ducati), Toni Elias (LCR Honda) and Alvaro Bautista (Suzuki) for ninth.
Both Tech 3 Yamahas and both Pramac Ducatis had accidents, though Colin Edwards was able to rejoin and finish 13th.
Results - 28 laps:
Pos Rider Team/Bike Time/Gap
1. Casey Stoner Honda 44m03.955s
2. Andrea Dovizioso Honda + 14.214s
3. Valentino Rossi Ducati + 14.564s
4. Jorge Lorenzo Yamaha + 21.075s
5. Marco Simoncelli Gresini Honda + 31.245s
6. Ben Spies Yamaha + 31.609s
7. Nicky Hayden Ducati + 35.566s
8. Hiroshi Aoyama Gresini Honda + 51.502s
9. Hector Barbera Aspar Ducati + 1m03.731s
10. Karel Abraham Cardion Ducati + 1m03.885s
11. Toni Elias LCR Honda + 1m04.068s
12. Alvaro Bautista Suzuki + 1m04.192s
13. Colin Edwards Tech 3 Yamaha + 2 laps
Loris Capirossi Pramac Ducati 21 laps
Dani Pedrosa Honda 17 laps
Cal Crutchlow Tech 3 Yamaha 6 laps
Randy de Puniet Pramac Ducati 1 lap