El piloto norteamericano que salía desde la primera posición, Joe Roberts, a 5 minutos de comenzar la carrera, no pudo salir desde la pole porque tuvieron que retirar su moto. Todos los mecánicos trabajaron en la moto sin parar con la mirada puesta de Roberts, mientras que el resto de pilotos daban la warm up lap. El problema había sido la elección de neumáticos, la carrera había sido declarada en mojado y al comenzar la carrera, no pudieron cambiar los neumáticos.

Salía Roberts durante la warm up, aunque dejaría su puesto en la primera línea libre por tener que salir desde el pit lane.

Se apagan las luces y a 25 vueltas del final, Remy Gardner se coloca primero en las primeras curvas, seguido de dos pilotos españoles, Xavi Vierge y Jorge Martín. La mayoría de pilotos con blando. El líder Luca Marini se encuentra séptimo y Joe Roberts como consecuencia del problema con los neumáticos, se colocó último.

Sam Lowes sigue de cerca a Jorge Martín, luchando por la tercera posición. Logra adelantarle  al igual que Vierge adelantando a Gardner. Pero Gardner no le deja. Lowes y Vierge completan la primera fila.

Sam Lowes busca la victoria en el Gran Premio de Francia, colocándose en primera posición, impidiendo que cualquier piloto se la arrebate. A 24 vueltas del final los cinco primero marcan una distancia de 1.505 con respecto al segundo grupo que lidera Jorge Martín al irse largo.

Biesiekirski es sancionado con una doble long lap penalti por realizar un jump start, mientras que comienza a aparecer un pequeño carril en algunas zonas del circuito.

Martín sufre una caída en la curva 10 quedándose la moto cerca de la pista, pero no aparecen banderas de ningún tipo, por lo que la carrera continúa. Acaba la oportunidad del piloto de KTM de recuperar puntos con respecto al campeonato.

Jake Dixon, el piloto del Petronas, mantiene una lucha con el número 22 por la victoria, seguidos de Gardner y Vierge. Bezzechi se encuentra un poco alejado de los cuatro primeros. En la parte trasera, Enea Bastianini logra superar a Luca Marini, recortándole algunos puntos de cara al Mundial.

Caída de Xavi Vierge a 21 vueltas del final. El joven piloto sufrió un high side pero que no le provocó daños, tan solo en el mono. Tras su caída, Bezzechi logra colocarse tercero adelantando a Remy Gardner que sufrió un pequeño susto. Lowes y Dixon se alejan marcando una distancia de 4 segundos.

Un pequeño susto de Lowes permite que Jake Dixon tome la primera posición y marque la vuelta rápida de la carrera. Su compañero de equipo, Augusto Fernández se encuentra en quinto lugar mientras tanto, seguido de DiGiannantonio y Luthi.

Joe Roberts saliendo desde la última posición se colocaba a 18 vueltas del final en la posición 15 por delante de Marini, el 18º. Augusto Fernández replica el tiempo de Dixon y marca una nueva vuelta rápida, 1.38.738.

14 vueltas para el final, y Augusto Fernández está luchando por la cuarta posición, intentando superar a Gardner que se lo impide. Mientras que Roberts adelanta a Bastianini y su compañero de equipo, Marcos Ramírez, colocándose 12º. A tan solo  8 décimas se encuentra Sam Lowes del piloto de Petronas, intentando recuperar la primera posición.

Finalmente Fernández supera a Remy, logrando esa cuarta posición que le permita llegar hasta Marco Bezzechi en la tercera posición, marcando un 1.37.4 el piloto mallorquín.

Bulega entra en el pit lane a 9 vueltas del final y Roberts marca una nueva vuelta rápida en su remontada. La pelea por la tercera posición está bastante complicada con 3 pilotos luchando por ella: Bezzechi, Fernández y Gardner. Vuelve a atacar Gardner a Fernández, recuperando la cuarta posición.

Caída para Jorge Navarro en la curva 3, que había sido sancionado con una doble long lap penalti por la caída que sufrió en la clasificación el sábado.

Nadie lo esperaba, pero el piloto de Petronas, Jake Dixon se va al suelo dejando a Sam Lowes con la victoria entre las manos si no ocurre nada. Comienzan a empujar el 72, el 87 y el 37 buscando la segunda posición. Roberts continúa con su increíble remontada colocándose en una sexta posición que puede que le sepa a poco al piloto que podría haber obtenido la victoria saliendo desde la pole.

Última vuelta y Fernández parece alejarse un poco de la lucha por la segunda posición. Quien no se rinde es Remy, que no deja metro libre con el piloto de Sky.

Gana la carrera Sam Lowes y Gardner logra superar a Bezzechi, completando el podio. Augusto cuarto y Joe Roberts sexto. Entre los españoles, encontramos a Héctor Garzó 12º, seguido de Ramírez 13º, Edgar Pons 19º. Luca Marini acaba 17º, sin perder el liderato, ya que Bastianini fue sancionado con 3 posiciones, acabando 11º.