Una vez más en la salida, y a pesar de levantarse la rueda delantera de su moto por unos instantes, fue el italiano 'Pecco' Bagnaia el más rápido, seguido por el español Pedro Acosta (Gas Gas RC 16) y el surafricano Brad Binder (KTM RC 16), mientras que Marc Márquez sólo pudo ganar tres posiciones y Raúl Fernández (Aprilia RS GP) perdió cinco. Bagnaia intento tirar con fuerza desde el principio para romper la carrera, pero Acosta se pegó a su rebufo, con Jorge Martín tercero algo más atrás como líder del grupo perseguidor, en el que había superado a Brad Binder. Marc Márquez recuperó una plaza más en una vuelta, mientras que Raúl Fernández era sexto, justo por detrás de Aleix Espargaró, mientras que el otro piloto oficial de Aprilia, el español Maverick Viñales, salió mal y por entonces era decimoctavo.
En la tercera vuelta 'Tiburón' Acosta intentó superar por primera vez a Bagnaia, pero un 'susto' cuando ya era primero le hizo perder la posición, y por detrás el australiano Jack Miller (KTM RC 16), que era séptimo, se fue por los suelos en la curva diez. La situación se fue clarificando, aunque todos los pilotos eran conscientes de que el desgaste de los neumáticos iba a jugar una baza determinante en la segunda parte de la carrera, aunque en cualquier caso Jorge Martín no quiso dejar lugar para la duda y en la quinta vuelta se puso líder de la carrera, después de superar a Acosta primero y, poco después, a Bagnaia, que se fue un 'pelín' largo en una curva. Por detrás del trío de cabeza Brad Binder, Raúl Fernández, Aleix Espargaró, Franco Morbidelli y Marc Márquez, que había recuperado dos posiciones más. En ese mismo giro, el quinto, Augusto Fernández (Gas Gas RC 16) se iba por los suelos en la curva 10. Acosta no se dejó 'amilanar' por sus rivales de mayor experiencia y en la sexta vuelta ya había superado a Bagnaia, que parecía no poder aguantar el ritmo de sus rivales, y se situaba pegado al 'rebufo' de Jorge Martín.
Martín y Acosta lograron una pequeña pero persistente ventaja sobre Bagnaia, que aguantó en solitario la tercera posición, perseguido por el trío formado por Brad Binder, Aleix Espargaró y Raúl Fernández, a los que poco después se unieron Franco Morbidelli y Marc Márquez. Pero la vuelta once iba a deparar la primera sorpresa de la carrera al rodar por los suelos en la curva 10 el 'Tiburón' del Puerto de Mazarrón, que dejó sólo en cabeza de carrera a Martín, con Bagnaia en una solitaria segunda plaza y, por detrás, Marc Márquez superó a Franco Morbidelli primero, y después, una vuelta más tarde, en la duodécima, superó a Brad Binder para ponerse tras la estela de Raúl Fernández.
Martín y Bagnaia consolidaron sus posiciones y diferencias horarias, pero por detrás Aleix Espargaró y Raúl Fernández iban cediendo terreno a un Marc Márquez que rodó de manera sólida unas cuantas décimas de segundo más rápido que sus rivales, al mismo ritmo de vuelta que Martín. El italiano Enea Bastianini (Ducati Desmosedici GP24) quedó descartado de cualquier pelea por acortar la curva dos, lo que le supuso la sanción de 'vuelta larga', que no cumplió y propició una doble sanción de 'vuelta larga' que le alejaba de cualquier objetivo y que, al no completar la sanción, le supuso una penalización de 32 segundos, lo que le hizo acabar decimoctavo. Marc Márquez superó a Raúl Fernández en la apurada de frenada de la recta de meta para ponerse cuarto, a tres décimas de segundo de Aleix Espargaró, más o menos la misma diferencia que mantenía Martín sobre Bagnaia.
En las últimas vueltas iban a jugar una baza determinante las condiciones de los neumáticos, quizás por eso Bagnaia aguantó hasta la decimonovena vuelta para adelantar a Martín por el interior de la curva cinco. Bagnaia consolidó la primera posición poco a poco, mientras que Marc Márquez adelantó a Aleix Espargaró en el mismo punto que había hecho con Raúl Fernández, en la apurada de frenada de final de recta, al principio de la vigésimo primera vuelta. Salvo error, la carrera estaba sentenciada con una nueva victoria de 'Pecco' Bagnaia, la tercera, por delante de los españoles Jorge Martín, que aumenta su ventaja en la provisional del mundial, y Marc Márquez.
Aleix Espargaró se tuvo que conformar con el cuarto puesto, por delante de Fabio di Giannantonio, Raúl Fernández, Alex Márquez, Brad Binder, Fabio Quartararo y Miguel Oliveira, que coparon las diez primeras posiciones. Viñales acabó en la duodécima posición, con Pedro Acosta, que, a pesar de la caída, siguió en carrera, también en los puntos, decimotercero, y Alex Rins (Yamaha YZR M 1) fue decimoquinto, el último piloto con derecho a puntos.
El japonés Ai Ogura (Boscoscuro) consiguió su primera victoria de la temporada en Moto2, y la primera desde Japón en 2022, quedando por delante del español Sergio García Dols (Boscoscuro), que aumenta su ventaja en la clasificación provisional del mundial, con el británico Jake Dixon (Kalex) consolidando su remontada con la tercera posición. El colombiano de origen español David Alonso (CFMoto) logró la cuarta victoria de la temporada en Moto3, con lo que recuperó el liderato en la provisional del mundial de la categoría, por delante de los españoles Iván Ortolá (KTM) y José Antonio Rueda (KTM).