Marc Marquez capitalised on a crash that took out four of his rivals to win at the Catalunya circuit and extend his MotoGP title lead.
Jorge Lorenzo slid on the second lap in Barcelona and, in the process, ended the races of Andrea Dovizioso, Valentino Rossi and Maverick Vinales.
Spaniard Marquez avoided the crash and took his fourth victory in seven races this season.
The win moved Marquez 37 points clear of Dovizioso in the overall standings.
“I feel really sorry for Andrea, Maverick and Valentino because they are fighting for the championship,” said Spain’s Lorenzo.
“For them it is a big disaster and I feel sorry for them.”
Fabio Quartararo, who started on pole position, finished in second place, with Danilo Petrucci in third.
Round eight of the 2019 series takes place in Assen, Netherlands on 30 June.
Catalunya Grand Prix results
1. Marc Marquez (Spa/Honda) 40mins 31.175secs
2. Fabio Quartararo (Fra/Yamaha) +2.660secs
3. Danilo Petrucci (Ita/Ducati) +4.537
4. Alex Rins (Spa/Suzuki) +6.602
5. Jack Miller (Aus/Ducati) +6.870
Overall standings (after round seven of 19)
1. Marc Marquez (Spa/Honda) 140 points
2. Andrea Dovizioso (Ita/Ducati) 103
3. Alex Rins (Spa/Suzuki) 101
4. Danilo Petrucci (Ita/Ducati) 98
5. Valentino Rossi (Ita/Yamaha) 72