Ducati kammade visserligen hem de fem bästa placeringarna i kvalet, men i stället för Bagnaia på första startplats, var det Fabio Di Giannantonio (Gresini Racing MotoGP) som startade från pole, medan Marco Bezzecchi (Mooney VR46 Racing Team ) inledde från andra startruta, och den senares teamkamrat Luca Marini vid sidan av dem. Di Giannantonio gjorde en bra start och kom iväg i ledningen från San Donato (varv 1) trots en attack från VR46-duon. Men Marini tog sig förbi när de svängde in i Materassi (varv 4) medan Bezzecchi placerade sig på tredje plats med 23 varv att köra.

Bezzecchi körde om Di Giannantonio genom Scarperia/Palagio (kurva 10 och 11), innan Quartararo tog tillbaka fjärdeplatsen från Aleix Espargaro på varv 2 efter att Aprilia-föraren hade gjort ett djärvt drag nerför backen under det inledande varvet. Quartararo var trea när han smet förbi Di Giannantonio vid Scarperia/Palagio på varv 2.

Ett nytt ”Ducati-hot” dök upp när Bagnaia, som hade tappat tillbaka till nionde på det inledande varvet, tog sig förbi Aleix Espargaro upp till femteplatsen på varv 4. Quartararo var dock också med i fajten och gled förbi Marini senare på samma varv, och tog över andraplatsen.

Bagnaia gled förbi Di Giannantonio när varv 4 blev varv 5, och gjorde sedan en häftig attack nästa gång han laddade uppför backen mot San Donato och passerade både Quartararo och Marini för att ta sig in på andra plats. "Pecco" var i ledningen när han körde om Bezzecchi i början av varv 9, medan Quartararo förlitade sig på överlägsen kurvtagningsförmåga för att passera VR46 Ducati-föraren genom Scarperia, på varv 11.

Samtidigt som Di Giannantonios framfart började blekna, hamnade Aleix Espargaro återigen i topp fem, strax bakom en närkamp mellan VR46-teamkamraterna Bezzecchi och Marini. Enea Bastianini (Gresini Racing MotoGP) och Johann Zarco (Prima Pramac Racing) kom ikapp det gänget runt 13 varv in i racet, men den förstnämnde var snart ute ur tävlingen efter att ha dråsat omkull med sin Ducati genom Materassi, på varv 14.

Aleix Espargaro kom äntligen tillbaka till fjärde position efter att han smet förbi på insidan av Marini på varv 14 genom Correntaio (kurva 12), och Zarco degraderade #10 till sjätte position i början av varv 17. Sedan tog sig Aprilias 'kapten' förbi Bezzecchi vid Scarperia på varv 17.

Medan allt detta pågick började Quartararo kapa lite av marginalen som Bagnaia åtnjöt uppe i täten. "El Diablo" kapade försprånget till under en sekund med cirka ett halvdussin varv kvar, men den fabriks-Ducati-föraren kunde svara på attacken. Han var snart tillbaka till en ledning på 1,1 sekunder med ett varv kvar, innan han passerade den rutiga målflaggan med en 0,6-sekunders seger före Quartararo. 

Aleix Espargaro slutade som trea, knappt två sekunder efter, medan Zarco passerade Bezzechi på sista varvet för att ta fjärdeplatsen. Marco Bezzecchi slutade som femma, före teamkompisen Luca Marini, medan Brad Binder (Red Bull KTM Factory Racing) bevisade än en gång att han är "söndagsmannen" genom att klättra från 16:e startruta till sjunde plats i mål. Bland de 10 bästa var Takaaki Nakagami (LCR Honda Idemitsu), Miguel Oliveira (Red Bull KTM Factory Racing) och – i hans sista race innan ännu en armoperation – Marc Marquez (Repsol Honda Team).

Det krävdes en videogranskning för att avgöra vem som vann 11:e-platsen, till förmån för Di Giannantonio, efter att han och Maverick Viñales (Aprilia Racing) initialt hade fått identiska racetider. Jorge Martin (Prima Pramac Racing) slutade på 13:e plats, Alex Marquez (LCR Honda Castrol) tog 14:e, och Jack Miller (Ducati Lenovo Team) tog den sista VM-poängen på 15:e plats. De som inte kom i mål utöver Bastianini var Pol Espargaro (Repsol Honda Team), som kraschade på varv 5, och Team Suzuki Ecstar-duon Joan Mir och Alex Rins, som båda körde omkull efter separata incidenter på varv 8.

I världsmästerskapet har Quartararos ledning över Aleix Espargaro ökat till åtta poäng, medan Bastianini nu är 28 poäng efter på tredje plats. Bagnaias vinst gör att han hoppar till fjärde plats i VM-ställningen, ytterligare 13 poäng efter.

Nästa MotoGP körs på Circuit de Barcelona-Catalunya kommande helg (3-5 juni).

MotoGP – Mugello -  Topp 10:

1. Francesco Bagnaia (Ducati Lenovo Team)

2. Fabio Quartararo (Monster Energy Yamaha MotoGP™) + 0,635

3. Aleix Espargaro (Aprilia Racing) + 1.983

4. Johann Zarco (Prima Pramac Racing) + 2.590

5. Marco Bezzecchi (Mooney VR46 Racing Team) + 3.067

6. Luca Marini (Mooney VR46 Racing Team) + 3.875

7. Brad Binder (Red Bull KTM Factory Racing) + 4.067

8. Takaaki Nakagami (LCR Honda Idemitsu) + 10.944

9. Miguel Oliveira (Red Bull KTM Factory Racing) + 11.256

10. Marc Marquez (Repsol Honda Team) + 11.800