Miután a sprintfutamon Alex Marquez az élen motorozva esett ki, így Marc Marquez nyert, a Ducati pedig a gyártók között bajnok lett, vasárnap délután a pole-ból volt lehetősége Alexnek a javításra.
Az első sorba rajta kívül még Quartararo és Marc Marquez fért oda, a második sorból pedig Morbidelli, Acosta és Di Giannantonio rajtolhatott. Aldeguer a 13., Martin s 17., Bagnaia pedig a 21. pozícióból indult Barcelonában.
Bár Alex Marquez nem jött el rosszul, Marc Marquez így is át tudta venni a vezetést az 1-es kanyarban, hiába próbált visszatámadni Alex. Acosta a harmadik helyre jött fel, Quartararo a negyedik helyre csúszott vissza, Bastianini és Marini pedig remek első kört teljesítve az ötödik és hatodik pozícióba jött fel. Bagnaia a második körre már a kilencedik helyen állt.
A 2. körben Bezzecchi és Di Giannantonio bukott, utóbbi vissza tudott állni a versenybe, viszont már jelentős volt a hátránya. Előbbi Bezzecchi csúszott ki a Morbidellivel történt összeérése után, majd Di Giannantonio is követte.
A 3. körben Bastianini egy bátor manőverrel előzte meg Quartararót a negyedik helyért, az élmezőnyben pedig kicsik voltak a különbségek, nem tudtak ellógni a többiektől a Marquezek.
A 4. körben az 1-es kanyarnál előzte vissza a testvérét Alex Marquez, rájuk pedig továbbra is tapadt Acosta, és Bastianini hátránya sem volt nagy. Kicsit hátrébb Zarco előzte Marinit, amivel feljött a hatodik helyre.
A 7. körben Binder bukott nagyot, ami után egy ideig lengett a sárga zászló. Alex Marquez eközben megfutotta a leggyorsabb kört, és lélegzetvételnyi előnyre tett szert testvére és a két KTM előtt.
Zarco a 9. körben már az ötödik helyre lépett, miután egy kemény, de fair csatában megelőzte Quartararót. Bagnaia pedig Ogurát előzte meg, és a nyolcadik helyre jött fel. Quartararót egy körrel később Marini is megelőzte, így a francia már csak a 7. helyen állt.
A két KTM annyira egymással volt elfoglalva, hogy lemaradtak a vezető Marquez-duótól. Végül a 11. körben jött össze az előzés Bastianininek, de Marc Marqueztől ekkor már 8 tizedre volt.
A futam feléhez közeledve Zarco dobta el a motorját az ötödik helyről, így Marini az ötödik, Quartararo a hatodik, Bagnaia a hetedik, Ogura a nyolcadik helyre lépett előre.
Bastianini tartotta a két Marquez tempóját, Acosta tempója azonban visszaesett, és nagyon távol került a top 3-tól. Szerencséjére a Marini vezette üldözők is messze voltak tőle.
A 16. körben Rins bukott, Marc Marquez pedig megközelítette az öccsét, ekkor csak 3 tized volt a különbség, Bastianini pedig további 5 tizedre követte a duót. Ekkor még 9 kör volt hátra a futamból.
A Katalán Nagydíj hajrájára Bastianini kiszállt a győzelemért folyó küzdelemből, 1,5 másodpercesre nőtt a lemaradása. Acostához Marini került egyre közelebb, Alex és Marc Marquez között pedig 2-4 tized volt folyamatosan a különbség, amikor már csak 5 kör volt hátra.
Marc vétett pár kisebb hibát, egy kör alatt körülbelül fél másodpercet vesztett, így nagy meccslabdát kapott Alex a győzelemre. 4 körrel a leintés előtt Morbidelli bukott, így 17-en maradtak versenyben.
Bagnaia azért küzdött az utolsó körökben, hogy megtartsa a hetedik helyet, Ogura pedig támadta a kétszeres MotoGP-bajnokot. Az olasz nagyot mentett az 1-es kanyarnál, könnyen bukás lehetett volna az esetből.
Alex Marquez az utolsó 2 körnek már szűk 1 másodperces előnnyel vágott neki, Ogura pedig csak meg tudta előzni Bagnaiát, amivel a hetedik helyre lépett a japán. Quartararo is előzött egyet, Marinit taszította maga mögé, és az ötödik pozícióba jött fel.
Marini tempója is nagyon visszaesett, így Ogura és Bagnaia is el tudott menni az olasz mellett, más pozíciócsere pedig már nem történt a Katalán Nagydíj utolsó körében.
Így Alex Marquez győzött Marc Marquez előtt, majd Bastianini, Acosta, Quartararo, Ogura, Bagnaia, Marini, Oliveira és Martin következett. Aldeguer csak a 15. helyig jutott, összesen 17-en értek célba.
Alex győzelmével az is eldőlt, hogy Marc Misanóban még nem tudja bebiztosítani az egyéni világbajnoki címét. A MotoGP jövő héten folytatódik a San Marinó-i Nagydíjjal.