A year on from losing a podium on home soil for miscounting how many laps he had remaining, Espargaro made up for this by beating world champion Bagnaia by just under two seconds.
Strong all weekend at Barcelona, Espargaro ran fourth on the opening lap having dropped from second on the grid but would take the lead on lap seven.
Easing away from Bagnaia, Espargaro came under no trouble as he took the chequered flag for his second win of the 2023 MotoGP season.
Bagnaia fended off the sister factory Aprilia of Maverick Vinales over the remaining laps to secure runner-up spot by just 0.051s.
Just as he did in Austria, Bagnaia converted pole to the holeshot as Vinales proved his start woes had been fixed by rocketing into second.
Pramac Ducati rider Jorge Martin slotted into third ahead of Espargaro, but by the start of lap two the latter have moved up to second.
Bagnaia pushed early on and built a lead of 0.5s come the end of the second tour, but Espargaro quickly closed him down.
Close to several attempts into Turn 1 over the next few laps, Espargaro’s decisive move came on lap seven.
Utilising the turning capabilities of the RS-GP to launch onto the main straight, he was able to draw alongside Bagnaia and outbrake him into Turn 1.
Source: Autosport