Jorge Martin memenangkan MotoGP Portimao sementara Francesco Bagnaia dan Marc Marquez bertabrakan di akhir balapan.
Start yang brilian dari Jorge Martin membuatnya merebut pimpinan dari Enea Bastianini menuju tikungan pertama.
Francesco Bagnaia berada di posisi ketiga sebelum kehilangan posisi itu kepada pemenang sprint, Maverick Vinales, sebelum Marc Marquez menyerang juara dunia bertahan.
Kontak ringan terjadi antara keduanya di keluar tikungan lima saat Bagnaia berhasil menahan serangan pembalap Gresini itu.
Terjadi kecelakaan pada lap pertama bagi Franco Morbidelli, sementara Ducati kedua dalam bentuk Alex Marquez jatuh pada lap kedua di tikungan lima.
Di depan, Martin terus memimpin meskipun Vinales semakin mendekat, sementara tiga KTM milik Jack Miller, Brad Binder, dan Pedro Acosta bertarung di posisi keenam, ketujuh, dan kedelapan.
Miller kemudian kehilangan posisi kepada kedua pembalap pada lap kelima setelah melebar di tikungan satu saat Binder menyelip di bagian dalam.
Setelah melihat Bastianini mencatatkan waktu lap tercepat balapan, Vinales merespons dengan melakukan hal yang sama saat ia mengurangi keunggulan Martin menjadi tiga persepuluh.
Dalam pertarungan untuk posisi keenam, Acosta melakukan overtake brilian di atas Binder sebelum mencatatkan waktu lap tercepat balapan.
Pebalap rookie sensasional itu mengejar dan melewati Marquez secara langsung pada lap kedelapan saat ia kemudian mengejar Bagnaia untuk posisi keempat.
Setelah beberapa lap di belakang Bagnaia, Acosta akhirnya menyiapkan serangan di tikungan satu tetapi hampir kehilangan kendali yang memungkinkan pembalap Ducati itu kembali ke posisi sebelumnya.
Kesalahan pada lap 16 kemudian membuat Acosta kehilangan waktu dari Bagnaia, sementara Martin mencatatkan waktu lap tercepat balapan.
Dengan hanya lima lap tersisa, Acosta akhirnya berhasil melewati Bagnaia setelah bergerak ke dalam di tikungan tiga.
Itu memberikan peluang Marquez untuk merebut posisi kelima saat mantan pembalap Honda hampir bertabrakan dengan pembalap Ducati pabrik di tikungan 13.
Marquez memberikan tekanan sebelum menyerang posisi di tikungan lima, tetapi setelah melebar sedikit, Marquez kemudian tertabrak oleh Bagnaia saat keduanya jatuh.
Marquez kembali ke motornya tetapi hanya bisa finis di posisi ke-16, sementara Bagnaia kembali ke pit dan pensiun.
Drama lebih lanjut terjadi pada lap terakhir saat Vinales jatuh dari posisi ketiga setelah tampaknya mengira balapan sudah selesai dengan satu lap tersisa.
Vinales melebar sebelum highsiding motornya Aprilia, yang memberikan Acosta finis di podium.