Both Bagnaia and Quartararo were well above the rest all weekend in Jerez, and after qualifying 1-2 at the net, the expected duel for victory emerged on Sunday.
Bagnaia and Quartararo both got off the line well and tied side by side in the lead-up to Turn 1 at the start of the race.
But it was Ducati’s rider who took the advantage, taking the lead from pole position with Quartararo scoring second ahead of Jack Miller’s factory second Ducati, Takaaki Nakagami’s fast-starting LCR Honda, Marc Marquez at Factory Honda and Alex Espargaro at Aprilia.
Marquez quickly dumped Nakagami in the final corner with a powerful move that opened the door for Espargaro to enter fifth, having slipped from third on the grid.
The leading duo ran back up front in the early stages as their pace proved far ahead of the rest of the field, Miller already about half a second back three laps in a 25-lap competition.
That gap between Quartararo and the chase pack only got bigger as the race went on, and Bagnaia’s advantage in the lead grew as well.
Come on lap 12, the gap that Bajnaya kept in the lead was about eight tenths, but she will swing between 0.8sec and 0.6sec.
Quartararo got the gap below half a second for the first time since the start of the race in the penultimate round, and will come closer than ever on the last lap.
But Bagnaia made no mistakes to claim his first win since Valencia last year, beating Quartararo by 0.285 seconds – with the rest of the field still nearly 11 seconds away.
Alex Espargaro engaged in a thrilling battle with Miller and Marquez for third, with that struggle exploding on lap 21.
Unable to find a way to overtake a hard-cracked Ducati, Marquez finally snatched third place away from Miller with a superb overtaking inside the right-hand section of Turn 5.
Marquez then defended his penalty at Turn 6, but would have had a big moment on the front end in the last corner and was lucky to stay in his Honda.
This happened at the same time Espargaro snatched fourth place from Miller, and gave the Aprilia rider last place on the podium as Marquez recovered from his moment.
But once Espargaro became clear, he slipped 1.6secs to climb onto his third podium of the season. Now, the winner of four podiums – including his win in Argentina – Aprilia has now lost his artistic perks.
Marquez beat Miller on the final lap at Turn 8 to take his best result of the year in fourth, while Suzuki’s Joan Mir completed the top six after coming close to that podium battle of late.
Nakagami finished seventh after his strong start, while Ina Bastianini managed only eighth on his Grisini Ducati, ahead of Marco Pesici’s VR46 Ducati.
Brad Bender completed the top 10 on his factory KTM Honda’s Paul Espargaro and sister factory KTM’s Miguel Oliveira, while Alex Marques (LCR Honda), Aprilia’s Maverick Vinales and Yamaha’s Franco Morbidelli took the final points.
Alex Rins’ recovery from 14th on the grid proved disastrous, as the Suzuki rider went off the track on lap nine at Turn 12 and fell to the back of the group.
He could only manage 19th in the checkered flag behind Gresini rookie Fabio Di Giannatonio, RNF Racing’s Andrea Dovizioso and VR46’s Luca Marini.
Tech 3 rookie Remy Gardner, Aprilia’s Lorenzo Savadore and Pramac’s Jorge Martin – who crashed on the first lap – were the last seeded winners, with HRC wildcard Stefan Bradl, Pramac’s Johann Zarco and RNF Darryn Binder crashing.
Quartaro expanded his championship lead to seven points, with Alex Espargaro moving to third ahead of Bastianini and Rins, while Bagnaya jumped from 10th to fifth – albeit still 33 points behind.
MotoGP Spanish GP – Race results: