Lewis Hamilton's world championship lead was cut to just three points as his McLaren team-mate Fernando Alonso won the Italian Grand Prix.
Hamilton and Alonso celebrate their one-two on the Monza podium
Hamilton finished second, overtaking Ferrari's Kimi Raikkonen 11 laps from the end after the Finn passed him thanks to doing one pit stop fewer.
Raikkonen's team-mate Felipe Massa is effectively out of the title battle after retiring after just nine laps.
The Brazilian is 23 points off the lead with a maximum of 40 still available.
Alonso led from the start, and appeared comfortable throughout.
The double world champion was only a second ahead of Hamilton when the Englishman made his first stop for fuel and tyres on lap 18.
I put in two really good laps and I had an opportunity and I really wanted to make sure it stuck
But Alonso did not stop for a further two laps, and was nearly two seconds ahead when he rejoined.
He proceeded to inch away for much of the second part of the race, extending his lead by around 0.3secs most laps.
By the time of their second stops, Alonso was more than six seconds in the lead, and out of Hamilton's reach.
"Sometimes everything seems to go in the right direction and you need to keep the momentum," Alonso said.
"The whole weekend has been good for me.
"But here at Monza [in the past] I have had some problems in the race and missed the win.
"All the wins are special but Monza is one of the circuits where I have never won before and I wanted to achieve that to try to make at least one win in all the circuits.
"All the people here maybe they are Ferrari fans but they are also F1 fans. They love F1 here."
And instead of thinking about beating his team-mate, Hamilton had to focus on beating Raikkonen.
The Finn's Ferrari ran four laps longer than Alonso before his sole pit stop, and Raikkonen kept close enough to the McLarens to pass Hamilton while the Englishman made his second pit stop on lap 40.
But the 22-year-old underlined his abilities as a never-say-die racer by catching the Ferrari and pulling off an audacious overtaking move just two laps later.
"I thought he was too far ahead and I knew I had two laps max before I had the best out of the tyres," he said.
I couldn't keep my head up under braking - my neck was in not very good shape after my crash yesterday
"But I put in two really good laps and I had an opportunity and I really wanted to make sure it stuck."
Raikkonen, who admitted his neck was still sore after his crash in Saturday practice, said: "We just didn't have the speed today. "I couldn't keep my head up under braking. My neck was in not very good shape after yesterday."
Raikkonen's third place means he has slipped to 18 points behind Hamilton, leaving his title hopes hanging by a thread as well.
But McLaren now head on Thursday to a hearing of motorsport's governing body into the spy scandal that has engulfed the sport, and could yet be hit with a points deduction, or even banned from the championship.
Massa had run third early on after losing out in a first-lap battle with Hamilton, who aggressively defended his second place from the Ferrari's advances around the opening lap.
Massa pulls into the pits to retire with suspension problems
Hamilton was given some breathing space on the second lap when the safety car was deployed following an accident to David Coulthard.
The Scot's Red Bull speared off the track at the 180mph Curva Grande following a rear wing failure.
The race restarted on lap six, and Massa's hopes of repeating his victory in Turkey two weeks ago ended just three laps later when he pulled into the pits with a so-far unspecified mechanical failure at the rear of his car.
Nick Heidfeld was best of the rest in fourth place in his BMW Sauber, ahead of his team-mate Robert Kubica, who grabbed fifth place from Williams's Nico Rosberg with just seven laps to go.
Renault's Heikki Kovalainen was seventh, ahead of Jenson Button's Honda.
The Englishman repeated his season-best result from the French Grand Prix, but his Honda looked more competitive at Monza than it had at Magny-Cours.
The Englishman fought an intense battle with Rosberg in the first part of the race, but had in the end to concede defeat to the faster car.
Italian Grand Prix result after 53 laps of Monza circuit:
1. Fernando Alonso (Spa) McLaren-Mercedes 1hr 18min 37.806secs
2. Lewis Hamilton (GB) McLaren-Mercedes +6.062 seconds
3. Kimi Raikkonen (Fin) Ferrari +27.325
4. Nick Heidfeld (Ger) BMW Sauber +56.562
5. Robert Kubica (Pol) BMW Sauber +1:00.558
6. Nico Rosberg (Ger) Williams-Toyota +1:05.810
7. Heikki Kovalainen (Fin) Renault +1:06.751
8. Jenson Button (GB) Honda +1:12.168
9. Mark Webber (Aus) Red Bull-Renault +1:15.879
10. Rubens Barrichello (Brz) Honda +1:16.958
11. Jarno Trulli (Ita) Toyota +1:17.736
12. Giancarlo Fisichella (Ita) Renault one lap behind
13. Alexander Wurz (Aut) Williams-Toyota one lap
14. Anthony Davidson (GB) Super Aguri-Honda one lap
15. Ralf Schumacher (Ger) Toyota one lap
16. Takuma Sato (Jpn) Super Aguri-Honda one lap
17. Vitantonio Liuzzi (Ita) Toro Rosso-Ferrari one lap
18. Sebastian Vettel (Ger) Toro Rosso-Ferrari one lap
19. Adrian Sutil (Ger) Spyker-Ferrari one lap
20. Sakon Yamamoto (Jpn) Spyker-Ferrari one lap
R Felipe Massa (Brz) Ferrari 10 laps completed
R David Coulthard (GB) Red Bull-Renault one lap
Fastest lap: Alonso 1:22.871, lap 15.