Replacing the #StayAtHomeGP, MotoGP introduced its first Virtual GP on the new MotoGP 20 video game to replace the Spanish Grand Prix, which was due to be this weekend before the coronavirus forced its suspension.
Petronas SRT man Fabio Quartararo took his second virtual pole of the year from Alex Marquez and Bagnaia, with Vinales heading row two on the factory Yamaha.
Off the line, Alex Marquez threw his Honda into the lead at Turn 1, while chaos ensued behind after Ducati's Danilo Petrucci triggered a multi-rider accident involving Quartararo, Vinales Marquez and Aprilia test rider Lorenzo Savadori.
While all this was going on, Bagnaia got ahead of the younger Marquez brother and shot off into the distance.
Alex Marquez crashed at the end of the first lap, which allowed his brother Marc to return to the podium places - though he would soon be passed by Quartararo.
Tech3 KTM's Iker Lecuona benefitted from the opening lap chaos and found himself in second, but would crash at the Ferrari right-hander on the second tour along with the chasing Quartararo.
Bagnaia continued to extend his advantage at the front, with Marc Marquez leading Vinales and Alex Marquez in the battle for second.
That trio swapped round on lap four, and would stay stagnant before reigning world champion Marc Marquez fell out of fourth on lap seven.
Alex Marquez had begun to eat into Bagnaia's lead in the latter stages, but crashed on lap 10, with the Pramac rider doing the same just moments later.
This released Vinales into a comfortable lead, which he held onto to take his maiden virtual win ahead of Alex Marquez and Bagnaia.
Marc Marquez backed off on the penultimate lap to allow Petrucci to close in, and survived an aggressive move from the Ducati rider at Turn 9.
Suzuki's Alex Rins was able to move into fifth ahead of the crashing Petrucci, who recovered to sixth despite running the race using the hotspot on his phone.
Tech3's Miguel Oliveira head Quartararo, who crashed multiple times, in seventh, with Lecuona, Savadori and Avintia's Tito Rabat rounding out the final positions.
Gresini Honda rider Gabriel Rodrigo prevailed in a crash-strewn Moto3 race, while real-life Spanish Grand Prix winner Lorenzo Baldassarri took top honours in the Moto2 encounter.