Bagnaia — who was demoted from second to fifth due to a grid penalty — claimed the lead at Turn 2 on the opening lap and never looked back, taking the chequered flag by 0.8s over team-mate Bastianini, as championship leader Jorge Martin had to settle for third.
At the start of the race, Bagnaia made a brilliant launch from fifth on the grid, taking the outside line into Turn 1 to shoot up to second position, before sending his factory Ducati up the inside of Martin to snatch the lead.
Once in front, Bagnaia set a series of fastest laps to break away from Martin, although the Pramac rider was able to cut his deficit back to 0.6s at the halfway stage of the race.
There was a bit of late pressure for Bagnaia with three laps to go as Martin closed his lead to under three tenths, threatening to deny him a victory on his home turf.
But Bagnaia was able to respond to Martin’s pace on the next tour to pull himself clear and complete a double win at Mugello, having also won Saturday’s sprint race with a similarly brilliant start.
Martin looked set to finish behind his chief championship rival, but Bastianini rallied late on to snatch second position from the Spaniard at the final corner and complete a surprise 1-2 finish for the factory Ducati team.
Marc Marquez spent the majority of the race circulating behind the second factory Ducati of Enea Bastianini, even making a mistake at Turn 1 on lap three and bringing Tech3 GasGas’s Pedro Acosta into play.
After resisting the advances of Acosta, who himself ran wide at the final corner a few laps later, Marquez again started piling pressure on Bastianini, but struggled to find a way through on the Italian.
It was only with six laps remaining in the race that Marquez finally got through on Bastianini with a typical block pass into the opening right-hander.
However, Bastianini never allowed Marquez to run away with third position and on the penultimate lap he nudged the Gresini rider aside to claim third. He would then pick off Martin to equal his best finish of the season.
Jorge Martin, Pramac Racing
Photo by: Gold and Goose / Motorsport Images
Acosta was once again the top rider from the KTM contingent in fifth, as Pramac’s Franco Morbidelli celebrated the best result of the season in sixth ahead of VR46 rider Fabio Di Giannantonio.
Aprilia’s Maverick Vinales couldn’t convert his front row start into a top position, dropping behind Di Giannantonio in the latter stages to end up eighth at the finish.
The top 10 was completed by Gresini’s Alex Marquez and factory KTM rider Brad Binder.
Aleix Espargaro was 11th on an underwhelming weekend for Aprilia, with Trackhouse duo Raul Fernandez and Miguel Oliveira ending up 12th and 14th respectively.
Separating the two two Trackhouse riders was VR46’s Marco Bezzecchi, as Alex Rins took home the final championship point in 15th for Yamaha.
The Japanese marque was unable to convert its impressive practice pace into a strong finish, with team-mate Fabio Quartararo only 18th behind KTM race rider Jack Miller and wildcard entrant Pol Espargaro.
LCR’s Takaaki Nakagami, Honda rider Joan Mir and Tech3 sophomore Augusto Fernandez were the only riders to retire from the race, the latter furiously gesticulating at his pit crew after pulling into the pits on lap three.