It was a fitting drive to mark Red Bull’s 400th grand prix.
The two caution periods led to a see-sawing battle between the McLaren drivers for second place.
Piastri had been on target to pass Norris when the Briton made his only pit stop and looked set to lead to a fight with Norris coming back at Piastri on fresher tyres.
Shortly after Norris’ stop, Esteban Ocon’s Haas stopped on the hill between the Tosa and Piratella corners, leading to a virtual safety car (VSC) period.
Norris was ahead after the VSC because Piastri stopped for fresh tyres to avoid being vulnerable to cars behind.
Then, officials decided to deploy a full safety car when Kimi Antonelli’s Mercedes stopped in exactly the same place as Ocon had.
This time, Verstappen and Norris stopped for fresh tyres and Piastri did not – because he had no appropriate ones still available – and that put Norris back behind Piastri, but on 16-lap fresher tyres.
Behind the safety car, Norris suggested that Piastri’s tyres “looked pretty dead” and they should not fight if they wanted to challenge Verstappen for the win.
But McLaren chose not to apply team orders and the two battled for three laps before Norris finally swept by into the first chicane with five laps to go, by which time Verstappen was out of reach.
The closing laps were compelling viewing, with the field alternating position between drivers on old tyres and those on fresh.
This allowed Hamilton to move up. He had started on hard tyres and ran long, which allowed him to make his first stop under the VSC, and again for fresh tyres under the safety car.
He passed Albon’s Williams and Leclerc and was just 1.4 seconds behind Piastri at the flag.
Leclerc fought hard to hold back Albon but was adjudged to have forced the Williams off track when they were side by side through Tamburello and Ferrari ordered him to hand the position back, giving Albon fifth place.
The Anglo-Thai’s team-mate Carlos Sainz finished eighth, ahead of the Racing Bull of Isack Hadjar and Red Bull’s Yuki Tsunoda, scoring the final point after his heavy crash in qualifying.
And the timing of the two safety cars also wrecked the hopes of Aston Martin and Fernando Alonso, after his excellent fifth place on the grid.
An early pit stop and a limited tyre allocation boxed Aston and Alonso in, and he bemoaned on the radio that he was “the unluckiest driver ever” as he slumped to an 11th-place finish.