De tweede race van het seizoen op het circuit van Portimao was er geen maat op Pecco Bagnaia, die liet zien wat eerder dit jaar al mogelijk was geweest als zijn snelste tijd in Q2 niet vanwege de gele vlag was geschrapt en hij toen - net als nu - op de pole position had gestaan.
Vanaf de op de tweede plaats op de grid had Jack Miller bij het doven van de rode lichten weliswaar een betere start, maar gaf in bocht 1 alle ruimte aan Bagnaia om binnendoor voorbij te gaan, om in de eerste ronde ook nog door Joan Mir te worden gepasseerd.
In de openingsfase liepen Bagnaia en Mir, die zich voor het eerst in zijn MotoGP carrière op de eerste startrij had gekwalificeerd, meteen weg bij Miller, die door Jorge Martin en Alex Marquez flink onder druk werd gezet.
Vijf ronden lang wist Mir het tempo van Bagnaia te volgen, maar moest daarna zijn meerdere erkennen in de coureur die met een overwinning de vice-wereldtitel niet meer zou kunnen ontgaan. Op zijn beurt hoefde Mir niet om de tweede plaats in de race te vrezen, op eenderde raceafstand had hij al een voorsprong van een seconde op Miller opgebouwd.
Waar aan de kop van de race de spanning ver was te zoeken kon dat niet van de derde en laatste podiumplaats worden gezegd. De tot de vierde plaats opgeklommen Alex Marquez reed in een ronde tijd naar het achterwiel van Miller toe, ging de Australiër aan het eind van het rechte stuk voorbij en leek daarmee voor het eerst dit seizoen op het podium te kunnen finishen.
Marquez, die als enige in de top voor de harde compound achterband was gegaan, leek zelfs een klein gaatje te kunnen slaan, maar voor Miller was het vooral ook een kwestie van bandenmanagement geweest. Met nog negen ronden te gaan voerde Miller de druk weer op, om in de 21e ronde de derde plaats weer voor zich op te eisen.
Alex Marquez bleef echter in het achterwiel van Miller, waarmee de strijd om de derde plaats pas de laatste ronde leek te worden beslist, tot met nog twee ronden te gaan vanwege een crash met Iker Lecuona en Miguel Oliveira in bocht 13 de rode vlag werd gezwaaid en de race stil werd gelegd. Met al 75% van de raceafstand verreden was daarmee de race gefinisht.
De dominantie van Pecco Bagnaia stond in schril contrast met de moeizame race van de kersverse wereldkampioen Fabio Quartararo, die twee weken geleden tot wereldkampioen werd gekroond nadat Bagnaia in leidende positie onderuit was gegaan.
Vanaf de zevende plaats op de grid viel El Diablo bij de start zelfs even terug naar de negende plaats maar wist zich te hervatten en zat het overgrote deel van de race in het kielzog van de twee Pramac coureurs, met uitzicht op de vijfde plaats in de race.
De moeizame strijd van Quartararo liet zien waarom een goede kwalificatie voor Yamaha van essentieel belang is. Op topsnelheid komt de Yamaha nog steeds behoorlijk tekort, waardoor meer risico moet worden genomen in de bocht. Daarnaast raakt de Michelin voorband snel oververhit wanneer je kort op iemand zit, wat inhalen haast onmogelijk maakt wanneer je niet op vermogen voorbij kunt gaan.
Dat was het grote probleem van Quartararo twee weken geleden in Misano en dat was ook nu zijn grootste probleem. Johann Marco eindelijk ingehaald ging Quartararo even later in bocht 13 bijna onderuit en gaf daarmee de zesde plaats weer aan zijn landgenoot terug, om enkele ronden later in bocht 5 roemloos onderuit te gaan en daarmee zijn allereerste DNF van het seizoen te noteren.
Een schril contract met zijn dominante zege hier eerder dit jaar, toen hij wel vanaf de pole position van start had kunnen gaan.
MotoGP Portimao, uitslag race:
| Pos | Rijder | Team | Merk | km/u | Tijd/verschil | |
| 1 | Francesco BAGNAIA | ITA | Ducati Lenovo Team | Ducati | 165.4 | 38'17.720 |
| 2 | Joan MIR | SPA | Team SUZUKI ECSTAR | Suzuki | 165.2 | +2.478 |
| 3 | Jack MILLER | AUS | Ducati Lenovo Team | Ducati | 165.0 | +6.402 |
| 4 | Alex MARQUEZ | SPA | LCR Honda CASTROL | Honda | 165.0 | +6.453 |
| 5 | Johann ZARCO | FRA | Pramac Racing | Ducati | 164.9 | +7.882 |
| 6 | Pol ESPARGARO | SPA | Repsol Honda Team | Honda | 164.7 | +9.573 |
| 7 | Jorge MARTIN | SPA | Pramac Racing | Ducati | 164.7 | +10.144 |
| 8 | Alex RINS | SPA | Team SUZUKI ECSTAR | Suzuki | 164.7 | +10.742 |
| 9 | Enea BASTIANINI | ITA | Avintia Esponsorama | Ducati | 164.4 | +13.840 |
| 10 | Brad BINDER | RSA | Red Bull KTM Factory Racing | KTM | 164.4 | +14.487 |
| 11 | Takaaki NAKAGAMI | JPN | LCR Honda IDEMITSU | Honda | 163.9 | +20.912 |
| 12 | Luca MARINI | ITA | SKY VR46 Avintia | Ducati | 163.8 | +22.450 |
| 13 | Valentino ROSSI | ITA | Petronas Yamaha SRT | Yamaha | 163.8 | +22.752 |
| 14 | Andrea DOVIZIOSO | ITA | Petronas Yamaha SRT | Yamaha | 163.6 | +26.207 |
| 15 | Stefan BRADL | GER | Repsol Honda Team | Honda | 163.6 | +26.284 |
| 16 | Maverick VIÑALES | SPA | Aprilia Racing Team Gresini | Aprilia | 163.5 | +26.828 |
| 17 | Franco MORBIDELLI | ITA | Monster Energy Yamaha MotoGP | Yamaha | 163.4 | +27.863 |
| DNF | ||||||
| Miguel OLIVEIRA | POR | Red Bull KTM Factory Racing | KTM | 164.4 | +1 ronde | |
| Iker LECUONA | SPA | Tech 3 KTM Factory Racing | KTM | 164.3 | +1 ronde | |
| Fabio QUARTARARO | FRA | Monster Energy Yamaha MotoGP | Yamaha | 164.8 | +3 ronden | |
| Aleix ESPARGARO | SPA | Aprilia Racing Team Gresini | Aprilia | 162.9 | +16 ronden | |
| Danilo PETRUCCI | ITA | Tech 3 KTM Factory Racing | KTM | 0 ronden |
Tussenstand:
| Pos | Rijder | Motor | Punten | |
| 1 | Fabio QUARTARARO | Yamaha | FRA | 267 |
| 2 | Francesco BAGNAIA | Ducati | ITA | 227 |
| 3 | Joan MIR | Suzuki | SPA | 195 |
| 4 | Jack MILLER | Ducati | AUS | 165 |
| 5 | Johann ZARCO | Ducati | FRA | 163 |