Jorge Lorenzo extended his lead in the 2012 MotoGP riders' championship with a hard-earned victory in the Catalunya Grand Prix.
Dani Pedrosa, who had held Lorenzo at bay for much of the race, finished second ahead of Tech 3 Yamaha's Andrea Dovizioso.
Casey Stoner meanwhile finished fourth, the first time he has failed to finish on the podium, excepting crashes, since Misano in 2010.
Despite qualifying only fifth, Pedrosa's Honda jumped into the lead at the start, and was initially hounded by fellow second-row man Ben Spies.
The Texan, chasing his best finish for Yamaha this year, attempted to pass Pedrosa at Turn 3 on the second lap. Once inside however he could not hold his bike, running wide and into the gravel. He eventually fought back to finish 10th.
In his absence Lorenzo took up the challenge, shadowing Pedrosa throughout the opening half. After switching positions several times, Lorenzo's pressure eventually told when Pedrosa ran wide at La Caixa six laps from the end.
Once through, Lorenzo was able to edge away, eventually claiming his third win of the season for Yamaha by five seconds.
His championship gains were exaggerated by Stoner's struggles. The Australian was edged down to fourth at the start and remained there for the majority of the race.
Initially he, Dovizioso and the second Tech 3 Yamaha of Cal Crutchlow were locked together, but the Honda was not able to cope with Dovizioso's pace and dropped back.
Only in the final laps, when the Italian began struggling with his tyres, was Stoner able to exert serious pressure, but Dovizioso held on to take third ahead of Stoner and Crutchlow.
Gresini Honda's Alvaro Bautista came through the field to claim sixth, while Ducati's Valentino Rossi - who shadowed Bautista until the closing stages - finished seventh. Encouragingly for the Italian and Ducati, he remained within nine seconds of the lead until the late stages of the race.
LCR Honda's Stefan Bradl and the second Ducati of Nicky Hayden captured eighth and ninth, ahead of the returning Spies.
Aspar Aleix Espargaro finished as top CRT rider in 13th following a long battle with team-mate Randy de Puniet and Gresini's Michele Pirro.
Results - 25 laps: Pos Rider Team/Bike Time/Gap 1. Jorge Lorenzo Yamaha 43m07.681s 2. Dani Pedrosa Honda + 5.003s 3. Andrea Dovizioso Tech 3 Yamaha + 9.361s 4. Casey Stoner Honda + 9.544s 5. Cal Crutchlow Tech 3 Yamaha + 12.506s 6. Alvaro Bautista Gresini Honda + 13.948s 7. Valentino Rossi Ducati + 17.555s 8. Stefan Bradl LCR Honda + 23.478s 9. Nicky Hayden Ducati + 30.410s 10. Ben Spies Yamaha + 32.897s 11. Hector Barbera Pramac Ducati + 36.144s 12. Karel Abraham Cardion Ducati + 56.229s 13. Aleix Espargaro Aspar Aprilia + 1m08.054s 14. Michele Pirro Gresini FTR-Honda + 1m08.775s 15. Randy de Puniet Aspar Aprilia + 1m10.483s 16. James Ellison Paul Bird Aprilia + 1m13.090s 17. Mattia Pasini Speed Master Aprilia + 1m20.903s 18. Yonny Hernandez Avintia FTR-Kawasaki + 1m21.235s 19. Danilo Petrucci Ioda-Aprilia + 1m41.207s 20. Ivan Silva Avintia Inmotec-Kawasaki + 1m41.888s Retirements: Colin Edwards Forward Suter-BMW 24 laps