The Petronas Yamaha rider dominated the opening two races of 2020 but failed to reach the podium in the subsequent five.
Vinales, another Yamaha rider, is in the second row alongside Ducati-Avintia'a Johann Zarco and Jack Miller from Ducati-Pramac after finishing qualifying fifth fastest.
Utilising the slipstream down the start/finish straight, Quartararo moved on Morbidelli as lap nine began, Rossi patiently watching from half a second back with Miller another 0.8 adrift.
Yamaha's Valentino Rossi, who was chasing his 200th podium on his 350th start, was in second place when he crashed for the second time in as many races after losing control on turn two.
Rossi fell from second place, behind Quartararo, with 9 laps to go.
Last weekend's victor Vinales got a shocking start and could only recover to ninth.
The teammate battles continued behind as Miller and Bagnaia fought hard for fifth, Taka Nakagami standing by to capitalise if a chance materialised but it wasn't to be, the LCR rider coming home in seventh and the leading Honda.
Petrucci was eighth on his works team Ducati, while Maverick Vinales salvaged a lowly ninth on his Yamaha after a miserable afternoon. Struggling to overtake on the M1, he benefitted greatly from crashes ahead.
Binder secured top-KTM honours with a disappointing 11th, ahead of Aleix Espargaro, Alex Marquez, Iker Lecuona and Tito Rabat.
Quartararo's third win of 2020 moves him eight points clear in the championship now, with Mir moving up to second with his fourth podium of the year.
Fabio Quartararo topped the times in the free practice runs for this weekend's Catalan MotoGP on Saturday as the young gun tries to get his championship charge back on track. Now 50 points down, Rossi's hopes have taken a serious hammer blow.