Bagnaia remains perfect in Portimao as he beats Vinales to victory
Making a brilliant start from third was Jorge Martin, however, the best launch of them all went to Oliveira as the home favourite went from fourth to first.
Martin responded on the approach to turn two before Marquez sent his Repsol Honda to the inside of both riders.
- Portuguese MotoGP, Portimao - Race Results
- Marc Marquez crashes at Portuguese MotoGP, taking out Miguel Oliveira
Marquez, who tried to keep the lead on corner exit, made contact with Martin who was on the Honda rider’s inside.
The clash gifted Oliveira back the lead as Bagnaia managed to jump ahead of Marquez but not Martin.
However, at the start of lap two Bagnaia made an early move on Martin before taking the lead a few corners later.
Then came a race-changing incident on lap three as Marquez got his braking all wrong at turn three.
The eight-time world champion clipped the rear of Martin’s Pramac Ducati, moments before clattering into Oliveira at full speed.
Martin dropped down to 15th as a result of the clash, whereas Oliveira remained down for some time as he appeared to be hurt from the accident.
Marquez rushed to check on Oliveira before attempting to get his Honda restarted, while the RNF Aprilai rider remained down for nearly an entire lap.
Despite being gifted a big lead following the clash between Marquez, Martin and Oliveira, Bagnaia was not having things his own way.
Maverick Vinales was quick to close down the reigning world champion, while Jack Miller was unable to replicate his early potential from the Sprint race. The Australian was pushed down to fifth by Marco Bezzecchi and Alex Marquez.
As Vinales continued to pressure Bagnaia for the lead, Fabio Di Giannantonio retired from the race with an apparent technical issue.
Producing Sunday miracles once again despite suffering from a neck injury all weekend, Brad Binder was sixth with 11 laps gone, and one place behind teammate Miller.
After seeing Vinales get within two tenths of his race lead, Bagnaia decided to put the hammer down and set back-to-back personal best laps, which was enough to increase the lead to eight tenths.
Showing strong race pace after another poor start, Fabio Quartararo was finding it difficult to drag his Yamaha up the order as he sat in a lonely tenth with nine laps remaining.
Bagnaia, who built his lead to 1.3 seconds, then had to react quickly as Vinales found six tenths on the race leader.
The factory Ducati rider did just that, although Vinales was still faster on the next lap around as he found another two tenths.
After seeing his teammate fail to make a move stick on Marquez twice, Binder tried his luck after putting back-to-back overtakes on Miller and Marquez.
However, the same problem occurred for Binder as he saw Marquez use his Ducati power to blast back ahead on the run to turn one.
As Bagnaia held on to take victory, Zarco delivered a stunning charge in the final three laps as he overtook Miller, Binder and Marquez to claim an unlikely P4.