La categoría intermedia vio comenzar su novena carrera de la temporada a las 12:20 horas del mediodía. Álex Márquez fue el mejor en la salida, tras posicionarse primero delante de su compañero de equipo y hombre de la pole, Franco Morbidelli. Tras ellos, Luthi y Cortese se pegaron a los dos pilotos del Estrella Galicia 0.0 y formaron un grupo, abriendo un hueco sobre Bagnaia, Pasini, Oliveira, Garzó, Corsi y Quartararo.
Pronto, Luthi empezó a hacer valer sus mejores sensaciones. Adelantó a Morbidelli y, posteriormente, aprovechó una pequeña colada de Márquez para tomar el liderato de la carrera. Además, el 73 volvió a colarse, lo que aprovechó el líder del campeonato para pasar a la segunda posición. Mientras, por detrás, Oliveira se colocó primero del grupo perseguidor, y se fueron al suelo Héctor Garzó y Andrea Locatelli, a la vez, en la curva 12.
Posteriormente, la carrera dio un giro. Y es que en la curva 2, Álex Márquez sufrió su novena caída del año, un aparatoso accidente y, además, un duro golpe anímico, ya que dicho 0 en carrera le deja a más de 50 puntos de Franco Morbidelli en la clasificación de pilotos del Mundial.
Así, la carrera quedó con Luthi en cabeza, delante de Morbidelli, que se acercó progresivamente hasta pegarse al suizo. De esta forma, primero y segundo del Mundial prepararon la batalla, llevándose el italiano el primer envite, tras ponerse líder a 22 vueltas del final. Por detrás, quedaban Oliveira, que rodaba a 2 segundos del dúo de cabeza, Corsi, Cortese, Pasini, Bagnaia, Schrötter y Binder.
En las vueltas siguientes, Thomas Luthi se dedicó a seguir a Franco Morbidelli. El suizo estudió al italiano, hasta que a 17 giros del final, sufrió una caída que dejó al del Estrella Galicia como líder en solitario. Luthi no pudo regresar a la pista, por lo que, al igual que Márquez, sale de Sachsenring con un 0 que dejaba a Morbidelli como el máximo beneficiado, poniendo tierra de por medio en la general.
Por lo tanto, Morbidelli quedó líder, delante de un Oliveira que, en aquel momento, rodaba a 2 segundos. Sin embargo, el portugués de KTM comenzó a recortar la diferencia de una forma espectacular, llegando a ser hasta 4 décimas más rápido por vuelta que el italiano. Finalmente, el 44 se pegó en pocas vueltas, planteando batalla por la victoria. Mientras tanto, detrás, Corsi, Bagnaia y Pasini formaron un grupo para intentar subir a la última plaza libre del podio y, más atrás, Aegerter tuvo que retirarse y Augusto Fernández debió pasar por boxes, aunque le mostraron bandera negra en su regreso a pista por introducir su moto en el box.
La emoción de la carrera se concentró en la pelea entre Oliveira y Morbidelli. El portugués buscaba adelantar al italiano, pegándose en todo el circuito, pero en la curva 12, uno de los puntos más claros de adelantamiento del trazado alemán, el líder del Mundial aguantó el arreón en la frenada y logró mantener la primera posición. Mientras tanto, el grupo trasero recortó algunas décimas.
Con esta situación, se llegó a los giros finales. Morbidelli seguía resistiendo los leves ataques de Oliveira, especialmente en la ya mencionada curva 12, hasta que el portugués consiguió adelantarle justo allí, en la penúltima vuelta. Por detrás, Bagnaia superó a Corsi para colocarse tercero.
Franco Morbidelli no bajó los brazos y recuperó la posición en la primera curva. Después, consiguió aguantar a Oliveira y acabó consiguiendo su sexta victoria de la temporada en nueve carreras por delante del de KTM, llegando así al verano con 37 puntos de ventaja sobre Luthi. Bagnaia completó el podio, mientras que acabaron en los puntos Corsi, Pasini, Navarro, Binder, Cortese, Schrötter, Nakagami, Syahrin, Gardner, Quartararo, Simeon y Manzi. Detrás, finalizaron Raffin, Hernández, Nagashima, Edgar Pons, Pawi, Lecuona, Viñales, Mackenzie y Fuligni.