Yamahas Quartararo had an extended lap penalty to serve for a collision with Espargaro at Assen that could ultimately prove hugely costly to his race, because the latter took part carrying injury on his feet following a violent 115mph crash in FP4 on Saturday.
After an early on crash for initial race leader Johann Zarco, Bagnaia overhauled Suzukis Alex Rins to lead on lap 12 and fended off a late charge from Aprilia rider Vinales to take his fourth win of the entire year.
Poleman Zarco grabbed the holeshot off the line as Fabio Quartararo slotted into second after almost arriving at blows with Vinales in the beginning away from home to show 1.
Quartararo made one attempt at passing Zarco for the lead in to the Loop on lap two of 20, but found no chance through.
At one stage briefly checking a gap of four tenths to the chasing factory Ducati of Jack Miller, but that gap was quickly eroded and Quartararo had to serve his long penalty for his collision with Espargaro at Assen with out a clean gap to drop into.
Taking to the penalty loop situated externally of the track on the fourth tour dropped Quartararo from second to fifth as Bagnaia and Suzukis Alex Rins were released before him.
Zarco who made a late switch from the soft front tyre to a medium crashed under braking for Vale corner on the fifth lap, which promoted Miller briefly in to the lead.
But he came under fire from Rins on the Suzuki, the Spaniard who started 11th attempting on the lead at the Loop on a single tour.
He was repelled by the Ducati of Miller, but Rins came through into Vale on the next tour, with the Suzuki rider immediately checking a gap of around four tenths.
Rins swelled that result in eight tenths come the finish of lap seven as Bagnaia moved around second before Miller.
Bagnaia began to reduce 2019 Silverstone race winner Rins lead on the ensuing laps and made a move stick away from home into Stowe corner on lap 12.
Rins would quickly fade down the order to seventh as a surging Vinales, who dropped to sixth on the opening lap having started second, picked his way to the podium places by lap 17.
Vinales ate into Bagnaias lead and was within striking distance come the penultimate lap.
The Aprilia rider lunged up the within of Bagnaia into Village corner, but ran wide and allowed the Ducati another through.
Vinales returned onto Bagnaias tail onto the Wellington Straight, but an expensive mistake at Turn 1 in the beginning of the last lap when he ran wide offered the latter a reprieve.
Another mistake at Stowe for Vinales killed his victory hopes, with Bagnaia absolve to reach the chequered flag 0.426s free from Vinales who celebrates his second podium being an Aprilia rider.
Miller completed the podium as Gresinis Enea Bastianini charged to snatch fourth from Pramacs Jorge Martin with whom he could be battling to have a factory Ducati team seat next year on the final lap.
Miguel Oliveira completed the very best six on his KTM for his first top six since Portugal, as Rins finished up seventh.
Behind him came championship leader Quartararo, who was simply hindered by the Yamahas struggles to overtake following his long lap penalty on lap four.
Quartararo re-joined in fifth, but on lap seven was demoted to fifth by Martin and right down to sixth by Vinales on lap nine.
He continued to fade and only narrowly beat chief title rival Espargaro to eighth by 0.139s to open his championship lead out by simply one further indicate 22.
The very best 10 was completed by VR46 Ducati rider Marco Bezzecchi, with the ultimate points likely to Brad Binder [KTM] Bezzecchis teammate Luca Marini, LCRs Takaaki Nakagami and factory Honda counterpart Pol Espargaro, and Yamahas Franco Morbidelli.
Joan Mir on the next Suzuki was running for the reason that lead group in eighth place when he crashed at Stowe on lap 15, while Zarco pulled from lap nine having re-joined from his earlier crash.