Going with out a win for 3 years earlier than the Portuguese GP dash, Vinales made it back-to-back wins within the half-distance races as he streaked away from the sector.
Securing the holeshot from pole, Vinales got here beneath no bother as he moved over two seconds away from the pack over the ten laps earlier than finally taking the chequered flag 2.294 seconds in entrance.
Marquez scored his second successive runner-up dash consequence on the Gresini Ducati, having fended off Tech3 rookie Pedro Acosta earlier than pulling away from third when championship chief Jorge Martin moved into the place.
Martin elevated his championship result in 24 factors as manufacturing unit Ducati duo Enea Bastianini and Francesco Bagnaia struggled for tempo.
Bastianini was 8.6s from the win in sixth, whereas Bagnaia struggled to a lowly eighth having languished outdoors of the dash factors for a lot of the ten laps.
In the beginning, Vinales led Marquez and Acosta as Bagnaia light to tenth following a poor launch, whereas Bastianini jumped as much as fourth on the sister manufacturing unit group Ducati.
That main trio shortly broke away from Bastianini, who was already 0.7s adrift on lap two.
Martin moved forward of Bastianini at Flip 7 on lap three, however confronted a 1.2s hole to the ultimate podium spot as Vinales within the lead twisted the knife.
Jorge Martin, Pramac Racing
Photograph by: Gold and Goose / Motorsport Pictures
The Aprilia rider posted the quickest lap of the race with a 2m02.275s on the third tour to take a 0.9s lead over Marquez, which he swelled to 1.5s come the beginning of the fifth lap.
That hole would solely develop as Acosta tried to take second from Marquez on lap six, trying a transfer on the within of the Flip 7 left-hander.
However Acosta ran vast and Marquez swooped again by way of into Flip 8, earlier than Martin took third from Acosta moments later into Flip 11.
Regardless of a small error at Flip 12 on lap eight, Vinalesā lead got here beneath no risk as he eased to the chequered flag.
Marquez pulled the pin within the latter levels to get second, 2.1s away from Martin, with Acosta fourth and Apriliaās Aleix Espargaro 0.177s adrift in fifth.
Bastianini was sixth after a late battle with KTMās Jack Miller, whereas Bagnaia recovered to eighth forward of Trackhouse Racingās Raul Fernandez.
Just one Honda made it to the end, with Luca Marini 22.989s off the lead in seventeenth and final after team-mate Joan Mir and LCR duo Takaaki Nakagami and Johann Zarco all suffered crashes.
Fabio Quartararo was the lead Yamaha in fifteenth, whereas VR46 Ducati rider Fabio Di Giannantonio dropped out on lap one with a motorbike concern.
Tech3ās Augusto Fernandez additionally crashed out of the race.