After locking out the front row of the grid, McLaren looked on course for a one-two for half the race, with Piastri leading Norris after the Australian passed the Briton around the outside of the second chicane on the first lap.
Piastri’s fair but aggressive move ended with Norris slipping down to third in the first stint of the race as Leclerc was also able to slip by into second on the exit of the corner.
After trailing Piastri and Leclerc through the first stint, Norris made his pit stop first, in an attempt to undercut his way by Leclerc, who responded on the following lap.
Ferrari pitted on the next lap but McLaren’s strategy worked, vaulting Norris ahead of Leclerc, who initially complained on the radio.
McLaren pitted Piastri to ensure he kept the lead, following their team rules of being fair to both drivers, and the race now seemed to be a fight for victory between the two McLarens.
But Norris began to struggle with tyre wear, slowly dropping back to five seconds behind Piastri and had to make a second pit stop on lap 32, with 21 to go, Piastri following him six laps later.
There will be questions as to whether McLaren, worried about heavier front tyre wear than Ferrari, should have stayed out in front and gambled on their tyres lasting.
Their decision to pit left Leclerc leading his team-mate Carlos Sainz by just over 10 seconds with Piastri chasing both down, and Ferrari decided to chance their arm.
They knew a one-stop option would be difficult, especially with such an early first stop, but both drivers pulled it off.
But, while Sainz dropped back to fourth behind the two McLarens, Leclerc’s lead was enough to keep him in front, to take one of the most stunning and unlikely victories of the year.
The crowd cheered him across the line as he took his second Monza victory for Ferrari, after his first in 2019.
“An incredible feeling,” Leclerc said. “I thought the first time would feel like this and the second time, if there was one, wouldn’t feel as special.
“But my god, the emotions in the final laps – just like 2019. Incredible.
“Monaco and Monza are the two races I want to win every year.
“Obviously I want to win as many as possible, and the world championship as soon as possible, but these are the two most special and I have managed to win them this year. It is so, so special.”