Parte male dalla pole Quartararo che retrocede in quarta posizione, in testa Miller davanti a Morbidelli e Bagnaia, il francesino però scavalca Pecco nel corso del secondo giro, nelle retrovie cadono Alex Marquez, che si tocca la spalla, Binder, che cadrà una seconda volta prima di ritirarsi, e Rins. L’Aprilia di Aleix Espargaro toglie il quarto posto a Bagnaia, mentre Quartararo nel corso del quarto giro supera sia Morbidelli sia Miller e va in fuga.
Bagnaia cambia passo a sua volta tornando davanti a Espargaro e lanciandosi all’inseguimento di Morbidelli che supera nel corso del 15° giro alla curva Dry Sac. Intanto Quartararo va in crisi per un problema al braccio destro e Miller lo raggiunge e lo scavalca al 16° passaggio lasciandolo sul posto, il francese della Yamaha si guarda indietro per vedere chi gli sta tornando sotto. Bagnaia e Morbidelli lo sopravanzano nel corso del 18° giro, pertanto le due Ducati ufficiali sono in testa mentre il leader del mondiale continua a perdere posizioni.
Bagnaia guadagna qualcosina su Miller ma più ancora guadagna Morbidelli sul torinese tornandogli sotto, ma Pecco risponde levandoselo di ruota a tre giri dalla fine e prova ad andare a riprendere il compagno di squadra. Ma non c’è niente da fare e Jack Miller vince il Gran Premio di Spagna, suo ottavo successo nel motomondiale e secondo in MotoGP a cinque anni di distanza da quello nel Gran Premio d’Olanda del 2016.
Secondo a quasi due secondi Francesco Bagnaia che diventa leader del Mondiale senza aver mai vinto una gara di MotoGP, gradino più basso del podio per Franco Morbidelli sulla Yamaha Petronas. Quarto Takaaki Nakagami che ha fatto una grande gara con la Honda Idemitsu, quinto il campione del mondo della Suzuki Joan Mir, sesto Aleix Espargaro sull’Aprilia, settimo Maverick Vinales con la prima Yamaha ufficiale, ottavo Johann Zarco sulla Ducati Pramac Racing, nono e decimo sulle Honda ufficiali uno strepitoso Marc Marquez e Pol Espargaro.
Quartararo chiude addirittura tredicesimo e perde la leadership nel mondiale a favore di Bagnaia per soli 2 punti. Diciassettesimo, fuori dalla zona punti e lontanissimo dal compagno di squadra Morbidelli un sempre più imbarazzante Valentino Rossi, preceduto anche dal fratello Luca Marini, sedicesimo.