Bagnaia spent much of the 24-lap Spanish GP fighting with the KTM duo of long-time leader Brad Binder and Jack Miller and only moved into the lead on lap 21.
The Ducati rider kept a relentless Binder at bay to score his second grand prix win of the year to retake the lead in the standings after erstwhile championship leader Marco Bezzecchi crashed out.
Sprint race winner Binder and Miller completed the podium to cap off a banner weekend for KTM, while Quartararo was 10th after an eventful afternoon for the Yamaha rider.
The race was red-flagged on the opening lap when Quartararo and RNF Aprilia's Oliveira tangled at Turn 2.
Quartararo made a solid launch from 16th on the grid but found himself hemmed in between Bezzecchi – who had a slide exiting Turn 1 – and Oliveira.
The Frenchman could do nothing to avoid contact with Oliveira, which took both riders down and brought the red flags out as the air fence needed replacing as both riders required medical attention.
Quartararo was able to walk away with just some pain in his leg, but Oliveira had to be taken to the medical centre where he was diagnosed with a dislocated shoulder.
The incident was placed under investigation and Quartararo was deemed to have been at fault, the Frenchman slapped with a long lap penalty as he came to the grid to take the restart.
At the original start, poleman Aleix Espargaro got swamped by both KTMs and the same thing happened at the restart.
Binder grabbed the holeshot from Miller and Pramac's Jorge Martin, with Aprilia's Espargaro shuffled down to fourth ahead of Bagnaia.
Bagnaia moved ahead of both Espargaro and Martin on the opening lap to occupy a podium spot, while Miller threw his KTM up the inside of Binder at the last corner on the second tour to take the lead.
Binder retaliated on the brakes into Turn 6 on lap four, while Bagnaia would do the same on Miller next time around with an aggressive move that drew the ire of the Australian.
It also copped Bagnaia a one-place demotion from the stewards, who forced the Ducati rider to surrender second to Miller on lap eight.
All of this allowed Binder to take a lead of eight tenths at the start of lap eight, though Miller was able to halve this gap come the end of lap 11.
On lap 15, Bagnaia capitalised on Miller running wide through Turn 12 to take second back and eased through on Binder into the last corner six tours later having used the superior corner speed he had to reel the South African in.
Binder didn't give up his chase over the final laps, but could do nothing to deny Bagnaia victory and a 22-point lead in the championship.
Miller was just 0.898s adrift of Binder in third, with Martin fading 2.8s adrift at the chequered flag in fourth having been in the podium hunt in the first half of the race.
Aleix Espargaro was fifth ahead of VR46 Ducati's Luca Marini, while Dani Pedrosa (KTM) concluded his wildcard outing with a seventh in his first grand prix since Styria 2021.
Alex Marquez (Gresini Ducati), Takaaki Nakagami (LCR Honda) and Quartararo rounded out the top 10.
Quartararo served his long lap penalty on lap four, but was forced to take it again when he ran out of penalty loop limits.
He rejoined in 16th after his second run through the long lap lane, but salvaged 10th from team-mate Franco Morbidelli, who served an identical punishment having been deemed to have caused a collision in the sprint race.
Fabio Di Giannantonio was 12th for Gresini from Tech3 GASGAS' Augusto Fernandez, Honda wildcard Stefan Bradl and RNF's Raul Fernandez.
Marc Marquez's Honda injury stand-in Iker Lecuona was 16th, while team-mate Joan Mir and LCR Honda's Alex Rins crashed out.
There were also late tumbles for Bezzecchi and Pramac's Johann Zarco, while Maverick Vinales was forced to retire on the last lap when the chain on his Aprilia broke.
Cla | Rider | Bike | Gap | |
---|---|---|---|---|
1 | Francesco Bagnaia | Ducati | ||
2 | Brad Binder | KTM | 0.221 | |
3 | Jack Miller | KTM | 1.119 | |
4 | Jorge Martin | Ducati | 1.942 | |
5 | Aleix Espargaro | Aprilia | 4.760 | |
6 | Luca Marini | Ducati | 6.329 | |
7 | Dani Pedrosa | KTM | 6.371 | |
8 | Alex Marquez | Ducati | 14.952 | |
9 | Takaaki Nakagami | Honda | 15.692 | |
10 | Fabio Quartararo | Yamaha | 15.846 | |
11 | Franco Morbidelli | Yamaha | 17.209 | |
12 | Fabio Di Giannantonio | Ducati | 17.911 | |
13 | Augusto Fernandez | KTM | 19.010 | |
14 | Stefan Bradl | Honda | 27.294 | |
15 | Raúl Fernández | Aprilia | 36.371 | |
16 | Iker Lecuona | Honda | 36.753 | |
17 | Jonas Folger | KTM | 47.146 | |
Maverick Viñales | Aprilia | |||
Johann Zarco | Ducati | |||
Marco Bezzecchi | Ducati | |||
Alex Rins | Honda | |||
Joan Mir | Honda | |||
Miguel Oliveira | Aprilia | |||
View full results |