Piastri led throughout before a perfectly-timed call from the pit wall, anticipating a Safety Car, saw the Australian hand top spot to his team-mate.
The result saw Norris score a maximum eight points with Verstappen in third picking up six – a two point swing in the championship.
However, questions hung over that result as an it was announced the Dutchman was under investigation for a potential fcs infringement.
Liam Lawson ended the race ninth, having lost out in a battle with Sergio Perez in another combative drive.
At the race start, Piastri jumped immediately to cover his team-mate, leading into the first corner from Norris with Charles Leclerc third and Verstappen holding on to fourth.
The Dutchman moved to attack the third-placed Ferrari into Turn 4 but could not find a way through.
In the lead, Piastri broke slightly clear of Norris, who in turn had eased away from Leclerc on the opening lap, the Brit 1.2s clear of the battle for third.
Carlos Sainz remained fifth ahead of George Russell, Pierre Gasly, and Lawson to complete the top eight at the end of the first lap.
As they started Lap 3, Leclerc was forced to defend against Verstappen, the Red Bull Racing driver sending a dummy into Turn 4, though there was no reaction from the Ferrari ahead.
By the end of the lap, Leclerc had closed to within DRS range of Norris ahead who in turn closed up on Piastri.
The gap between the McLaren pair was less than half a second though there was no direct threat to the race leader.
Sainz had dropped away into a lonely fifth as Russell struggled for pace in sixth, only just clear of Gasly who had Lawson in DRS range too.
A mistake midway around Lap 7 dropped Norris away from his team-mate and into the clutches of the battle for third and, most importantly, out of DRS range of the race leader.
Recognising the threat that posed, McLaren instructed Piastri to ease up and allow Norris back into DRS range.
He promptly did so, though Leclerc remained locked onto the second-placed McLaren’s gearbox.
In the car, Norris was frustrated with a series of messages over the radio expressing confusion and concern.
However, he appeared to struggle to match the pace of Piastri who appeared to have to manage his pace to help his team-mate.
Thankfully for McLaren, Verstappen began attacking Leclerc once more, dropping the pair away from Norris ahead.
There was clearly a plan in action at McLaren; the pit wall happy for Piastri to continue leading before ceding the place to Norris on the final lap – provided the gap to Leclerc remained comfortable.
That had eked out to 1.5s, holding steady just outside of DRS range as the Sprint moved into its final third.
A good run through the opening complex on Lap 18 saw Verstappen tucked up underneath Leclerc, finally allowing him to use DRS to drive by down the back straight and into third.
The Ferrari quickly dropped away in fourth with Verstappen given the hurry up from the pit wall to pursue his title rival ahead.
Piastri responded by improving his own pace, helping keep himself, and Norris, clear of the Red Bull Racing driver.
At the other end of the top eight, Lawson lost out to Sergio Perez into Turn 1.
The Mexican driver moved up the inside of the RB driver to take the place, the New Zealander looking to move to defend too late.
Elsewhere, Hulkenberg pulled off the road in the middle sector with an issue in his car.
It was covered under yellow flags, as he pulled to the inside of the right-hander that starts the twisty middle part of the lap.
With the treat of a Safety Car, McLaren pulled the trigger and instructed Piastri to allow Norris through.
It was a smart move as the Virtual Safety Car was quickly deployed for the stricken Haas.
As the race was neutralised, Norris was approaching the line to complete Lap 21, leaving officials three laps to clear the Haas.
Racing did resume as the pack started the final lap, as the top three headed down the back straight.
It went green at exactly the right second for Piastri, who had Verstappen swarming all over his rear wing but unable to get through as he turned into Turn 4 – just as the green flags were waved.
With only half a lap left, there was no further opportunity, and Norris won courtesy of his gift from Piastri, with Verstappen third.
Leclerc held on to fourth from Sainz, then came Russell, Gasly and Perez to round out the points, Lawson slipping to ninth.
Immediately post race, Verstappen was noted by officials for a potential Virtual Safety Car infringement, a matter that would be investigated and threw questions over whether the points leader would retain third in the final results.