El italiano dominó y consiguió la victoria por delante de Marc y Raúl. Jorge Martín terminó séptimo en los resultados del GP de Qatar
Marco Bezzecchi realizó una buena salida y se colocó al frente de la carrera. Por detrás, Marc Márquez perdió algunas posiciones, mientras Raúl Fernández aprovechó el toque entre Fabio Di Giannantonio y Ai Ogura para ganar dos puestos y situarse segundo. También comenzó con fuerza Jorge Martín, que consiguió avanzar hasta la octava posición.
Pedro Acosta fue uno de los protagonistas de las primeras vueltas. El murciano adelantó a Ogura y Johann Zarco antes de superar a Márquez en la cuarta vuelta para colocarse segundo. Mientras tanto, Bezzecchi aprovechó la lucha por las posiciones del podio para abrir un pequeño margen al frente. El italiano llegó a contar con cerca de nueve décimas de ventaja sobre Raúl Fernández.

La batalla entre Acosta y Márquez continuó durante las siguientes vueltas. El piloto de KTM consiguió superar al español, aunque Márquez recuperó la posición poco después. La presión de los neumáticos delanteros condicionó el ritmo de Acosta, que tuvo que ceder terreno. Esta situación permitió que Márquez volviera a meterse en la lucha por las primeras posiciones, mientras Enea Bastianini también se acercaba al grupo. Con el paso de las vueltas, Bezzecchi consolidó su ventaja y llegó a situarse a un segundo y medio de Raúl Fernández. Márquez, por su parte, comenzó a recortar distancias con el piloto de Trackhouse. El español mejoró su ritmo y llegó a marcar la vuelta rápida de la carrera, mientras Acosta seguía perdiendo posiciones por los problemas de presión de sus neumáticos.
La lucha también se extendió a las posiciones posteriores. Jorge Martín adelantó a Di Giannantonio en la curva 8 y consiguió subir hasta la séptima plaza. Por delante, Ogura superó a Bastianini y se acercó a Acosta, que terminó cediendo otra posición. El murciano llegó a caer hasta la sexta plaza. La carrera también perdió a dos pilotos: Moreira y Binder tuvieron que abandonar por problemas en sus respectivas unidades de potencia.
En las últimas vueltas, la atención se centró en la pelea por la segunda posición. Raúl Fernández cometió un pequeño error cuando quedaban cinco vueltas para el final y permitió que Márquez se acercara hasta situarse a seis décimas. El piloto de Ducati no tardó en lanzar su ataque. A tres vueltas de la bandera a cuadros, aprovechó el rebufo en la recta de Lusail para adelantar al español y colocarse segundo. Márquez consiguió abrir medio segundo de ventaja, mientras Raúl Fernández tuvo que centrarse en defender la última posición del podio. Ogura se acercó peligrosamente y llegó a situarse a poco más de un segundo, pero no encontró la oportunidad para completar el adelantamiento.
Finalmente, Bezzecchi cruzó la línea de meta en primera posición y confirmó su dominio durante toda la carrera. Márquez terminó segundo tras una remontada que le permitió superar a Raúl Fernández, que completó el podio. Jorge Martín, por su parte, cerró la carrera en séptima posición.
