A largada foi atrasada por dez minutos devido a um incidente com a moto de Raul Fernandez. Com isso, a corrida passou de 22 voltas para 21. Fernandez largou do fim do grid.
Jorge Martín aproveitou por pouco tempo sua pole position e logo Francesco Bagnaia tomou a posição, mesmo pressionado pelo sul-africano Brad Binder (KTM).
Em terceiro, Martín pressionava Binder e conseguiu ultrapassá-lo na terceira volta, que Bagnaia fez a mais rápida com 1min53s170.
Enquanto Bagnaia abria distância dos outros, Binder e Martín seguiam a briga pela segunda posição. Em quarto, Marc Marquez seguia tranquilo, de olho em Binder e Martín. Binder ultrapassou Martín de volta na sexta volta, e agora via a aproximação de Marc Marquez.
Na oitava volta, Bagnaia abriu vantagem de 1s060 para Martín. Faltando onze voltas, Binder voltou à segunda posição.
Na 11ª volta, Pedro Acosta finalmente ultrapassou Marc Marquez, passando para quarto, na perseguição a Martín. Mas Acosta errou em uma curva e Marquez retomou a posição. Acosta caiu para sétimo na 16ª volta após o italiano Enea Bastianini ultrapassá-lo.
A disputa era por um lugar ao pódio, e Binder e Martín mantinham-se segundo e terceiro, respectivamente, com folga de 0s372 para Marc Marquez. A três voltas do final, a vantagem de Martín para Marquez era de 0.294.
Bagnaia disparou na frente ao final da prova, com vantagem de 1s485. O bicampeão levou sua moto na liderança até o fim. Brad Binder e Jorge Martín completaram o pódio.
Confira a classificação final do GP do Catar:
1º - F. Bagnaia (ITA/Ducatti), em 39min,34s869
2º - B. Binder (AFS/KTM), a 1s329
3º - J. Martín (ESP/Pramac), a 1s933
4º - M. Marquez (ESP/Gresini), a 3s429
5º - E. Bastianini (ITA/Ducatti), a 5s153
6º - A. Marquéz (ESP/Gresini), a 6s791
7º - F. Di Giannantonio (ITA/Pertamina), a 9s161
8º - A. Espargaro (ESP/Aprilia), a 11s242
9º - P. Acosta (ESP/Red Bull), a 11s595
10º - M. Viñales (ESP/Aprilia), a 13s197
11º - F. Quartararo (FRA/Yamaha), a 17s701
12º - J. Zarco (FRA/Honda), a 18s075
13º - J. Mir (ESP/Honda), a 18s437
14º - M. Bezzecchi (ITA/Pertamina), a 19s194
15º - M. Oliveira (POR/Trackhouse), a 20s717
16º - A Rins (ESP/Yamaha), a 24s093
17º - A. Fernandez (ESP/Red Bull), a 24s106
18º - F. Morbidelli (ITA/Pramac), a 24s641
19º - T. Nakagami (JAP/Honda), a 25s556
20º - L. Marini (ITA/Honda), a 42s422
21º - J. Miller (AUS/Red Bull KTM), a 42s761