Partindo do 13º lugar da grelha, Oliveira efetuou uma excelente corrida no circuito austríaco, chegando ao oitavo lugar final, mas já encostado à moto de Francesco Bagnaia (Pramac Ducati), que foi o sétimo. Na partida, Oliveira ainda caiu dois lugares, mas rapidamente os recuperou, tirando partido depois de alguns abandonos à sua frente (entre os quais o da KTM oficial de Pol Espargaro) para subir a nono, passando Takaaki Nakagami (LCR Honda) a cerca de 12 voltas do fim. Depois, aproximou-se de Bagnaia, mas faltaram voltas para tentar um ataque.
O piloto português conquistou assim a sua melhor prestação na corrente temporada de MotoGP, sendo também o melhor das KTM naquela que foi a prova caseira da marca.
A luta pelo triunfo resumiu-se a um duelo bastante intenso entre Márquez e Dovizioso, com os dois a trocarem de posição por diversas vezes. Mas foi nas duas últimas voltas que a batalha conheceu o pico da intensidade. Quando Márquez parecia ter a corrida controlada na última volta, depois de evitar a ultrapassagem nos dois principais pontos do circuito, foi mesmo na última curva que Dovizioso desferiu o ataque decisivo ao espanhol, que não teve alternativa que ficar com o segundo posto com grandes celebrações da equipa italiana.
Fábio Quartararo (Petronas Yamaha) terminou a corrida no terceiro lugar depois de ter chegado a liderar nas primeiras voltas, mas depois de ultrapassado por Márquez e Dovizioso foi gradualmente perdendo o contacto com os dois líderes.
Valentino Rossi (Monster Yamaha) foi o quarto, acabando a corrida a defender-se de Maverick Vinales, em moto da mesma equipa, e Alex Rins (Suzuki).