La carrera ha comenzado sin incidencias con Jorge Martín tirando desde la pole y consiguiendo un pequeño hueco desde el principio. Tanto Bulega como Canet han tenido una mala salida y han perdido algunas posiciones en el arranque. Al primer paso por meta Martín era seguido por Bastianini, Bezzechi y Canet que no querían que el madrileño se escapase.
Aún así Martín ha conseguido abrir un hueco de medio segundo lo que obligaba a sus perseguidores a ayudarse con los rebufos para intentar que la ventaja no aumentase. Después del primer trío perseguidor otros tres pilotos intentaba dar caza al grupo perseguidor, compuesto por McPhee, DiGiannantonio y Lorenzo Dalla Porta. El británico era el que mejor ritmo tenía de los tres y poco a poco ha ido abandonando el segundo grupo para acercarse a los tres perseguidores que tenía delante formando finalmente un grupo de cuatro.
Aron Canet le indicaba a sus compañeros de grupo que no se peleasen y en un par de vueltas ya había dado caza a Jorge Martín, cosa que no conseguían hacer sus compañeros de persecución y el del Estrella Galicia marcaba vuelta rápida y adelantaba a Martín e incluso le dejaba ligeramente descolgado.
Todavía quedaban 17 vueltas para el final cuando Bezzechi y Bastianini adelantaban a Martín y le enseñaban la rueda a Canet. El guión cambiaba con un nuevo grupo de cinco pilotos y Jorge Martín se dedicaba ahora a descansar su maltrecho pie en la quinta posición dejando pasar las vueltas sin machacarse en el intento. Aún así el intercambio de posiciones era continuo pro el ritmo del grupo caía cerca de dos segundo por vuelta respecto a la vuelta rápida de Canet.
Hacia el ecuador de la carrera las cinco primeras posiciones quedaban totalmente estabilizadas y el grupo de cabeza se dedicaba a probarse unos a otros intercambiando posiciones continuamente. Por detrás también estaba el grupo bien definido con Kornfeil, Binder, DiGiannantonio, Dalla Porta, Masià, Rodrigo, Bulega, Masaki y Marcos Ramírez.
La pelea por las posiciones se traducía en sanciones para Alonso López, Antonelli, Foggia y Marcos Ramírez por diversas excursiones por fuera del trazado, mientras que entre los cinco de carrera todo seguía igual. Sin embargo, a menos de tres giros para la bandera a cuadros Jorge Martín ha conseguido colar algo más de medio segundo respecto a sus compañeros de grupo. Esto ha cogido con el pie cambiado a los otros cuatro y Aron Canet ha decidido intentar dar caza al madrileño. Esto ha causado la primera caída de la carrera cuando McPhee ha terminado en la grava de la curva 9 tras el repentino cambio de ritmo.
Así Martín ha conseguido más de medio segundo de ventaja para la última vuelta. Canet apretaba los dientes por detrás, pero a su vez acechado por Bastianini. El golpe de efecto ha llegado cuando Marco Bezzechi se ha ido al suelo en la última vuelta, lo cual ha dado el liderato de la general a Jorge Martín tras cruzar primero la línea de meta, seguido por Canet que acababa de recuperar la segunda posición respecto a Bastianini. El italiano ha cerrado el podio después de verse adelantado por Canet antes de la chicanne de entrada a meta. Así ha terminado la primera carrera del Gran Premio holandés:
Una carrera muy importante para la clasificación general que le devuelve e liderato a Jorge Martín. Ha estado marcada por el fuerte viento que azotaba el trazado holandés y las pocas caídas que se han producido, especialmente para tratarse de la categoría pequeña, además de las penalizaciones aplicadas por salidas de pista y recortes de trazada. Así queda la clasificación general tras el Gran Premio de los Países Bajos: