New world championship leader Marc Marquez cruised to victory at the Spanish Grand Prix as a mechanical problem cost pole-sitter Fabio Quartararo his first MotoGP podium.
Defending champion Marquez bounced back from a retirement last time out in style and was well clear of the rest of the grid even before Quartararo's day fell apart.
The 20-year-old Petronas Yamaha rider had become the youngest man to qualify fastest in Spain, yet he immediately lost his advantage to Marquez and bowed out of the race after moving up into second.
Marquez crossed the line for his second triumph of the season, moving a point clear at the top of the standings.
Meanwhile, Quartararo's team-mate Franco Morbidelli also endured woe as he paid the price for an aggressive early push and slipped to seventh.
That allowed Maverick Vinales to take third with a strong finish, just ahead of Andrea Dovizioso.
Valentino Rossi was able to improve from 13th on the grid to sixth, while Jorge Lorenzo had another tough outing, finishing in 12th.
Marquez, starting from third on the front row, nudged in front on the opening lap and held position, with Morbidelli and Quartararo in pursuit.
The Spaniard managed to build a gap as Morbidelli's challenge waned and Quartararo nipped in front of his colleague into second.
Alex Rins had qualified in ninth but skillfully traversed the grid and then pounced as Yamaha's race imploded.
Quartararo's bike gave up on him with an apparent gear problem and Rins was the man to emerge in second place, with Morbidelli continuing to fade.
However, the gap to Marquez was at almost four seconds as Rins led the pack and his hopes of reeling in the runaway leader were extremely remote.
The focus was instead on the battle for third as Morbidelli fell out of the picture completely and Vinales took advantage, holding off Dovizioso.
IN THE POINTS
1. Marc Marquez (Repsol Honda)
2. Alex Rins (Suzuki Ecstar) +1.654secs
3. Maverick Vinales (Monster Energy Yamaha) +2.443s
4. Andrea Dovizioso (Ducati) +2.804s
5. Danilo Petrucci (Ducati) +4.748s
6. Valentino Rossi (Monster Energy Yamaha) +7.547s
7. Franco Morbidelli (Movistar Yamaha) +8.228s
8. Cal Crutchlow (LCR Honda) +10.052s
9. Takaaki Nakagami (LCR Honda) +10.274s
10. Stefan Bradl (Repsol Honda) +13.402s
11. Aleix Espargaro (Aprilia) +15.431s
12. Jorge Lorenzo (Repsol Honda) +18.473s
13. Pol Espargaro (Red Bull KTM Factory Racing) +20.156s
14. Johann Zarco (KTM) +26.706s
15. Tito Rabat (Ducati) +28.513s
1. Marc Marquez (Repsol Honda) 70
2. Alex Rins (Suzuki Ecstar) 69 (-1)
3. Andrea Dovizioso (Ducati) 67 (-3)
4. Valentino Rossi (Monster Energy Yamaha) 61 (-9)
5. Danilo Petrucci (Ducati) 41 (-29)
1. Ducati 108
2. Monster Energy Yamaha 91 (-17)
3. Repsol Honda 81 (-27)
4. Suzuki Ecstar 77 (-31)
5. LCR Honda 56 (-52)