McLaren's Lewis Hamilton added the Italian Grand Prix to his list of Formula One victories at the weekend while Ferrari's Fernando Alonso stretched his overall championship lead to 37 points with third place.
Mexican driver Sergio Perez denied Alonso second place, overtaking the Spaniard seven laps from the finish in his Ferrari-powered Sauber in Ferrari's backyard.
Hamilton's third win of the season, and 20th of his career, lifted the 2008 champion to second in the overall standings with seven races remaining. Alonso has 179 points, Hamilton 142 and Lotus's Kimi Raikkonen 141.
Hamilton, had added the Italian flag colours to his helmet for the race at one of Formula One's most historic circuits but was still booed by some in the crowd who were disappointed not to see a Ferrari win the race.
"It's hard to enjoy it when you're being booed. But I don't care. I won," he later told a TV reporter once away from the podium after the final race in Europe this season.
Champions Red Bull had a nightmare afternoon in the sunshine with both Sebastian Vettel, the reigning champion, and Australian Mark Webber retiring late in the race while in scoring positions.
Vettel, who had been Alonso's closest rival in the standings before the start, retired six laps from the finish with an alternator failure and fell to fourth overall with 140 points.
Red Bull still lead the Constructors' standings with 272 points to McLaren's 243 and Ferrari's 226.
Vettel had already taken a drive-through penalty after pushing Alonso wide on to the gravel and grass as the Spaniard tried to overtake out of the first Lesmo curve and also gone side by side through the pitlane at the stop.
"Okay, that's enough now," Alonso said over the team radio after going off.
McLaren's Jenson Button, winner in Belgium last weekend and runner-up in Monza for the past three years, pulled over on to the grass along the pit straight and retired on the 33rd of the 53 laps with a fuel system problem while in second place.
While Hamilton chalked up his first victory at Monza, the big winner was Alonso who got the loudest cheer of the afternoon when he appeared on a podium suspended over the track and above a red sea of fans roaring their support and unfurling a giant Ferrari shield.
Alonso, who failed to score in Belgium after being shunted out at the first corner, had started 10th after a mechanical problem had denied him a likely pole in Saturday's qualifying.
"It was a difficult race, starting from 10th, but we knew we had maybe the quickest car this weekend," said a beaming Alonso, who also addressed the crowd in Italian to another explosion of approval after being interviewed on the podium by former Ferrari champion Niki Lauda.
"A perfect Sunday because the win was out of reach...it's much better than expected."
Lauda took his hat off, literally, to Perez for another astonishing drive by the 22-year-old Ferrari academy driver who has now been on the podium three times this season for his unheralded Swiss team.
"It's unbelievable to have a podium for my team at Monza. It's very special. I went for prime tyres at the start and I decided to stop late. That gave me very fresh tyres at the end. It's unbelievable," said Perez, the only driver apart from Hamilton to lead the race.
Ferrari's Felipe Massa finished fourth, denied a first podium since 2010 by team orders that obliged him to let Alonso through on lap 40, and overshadowed by a Mexican who could take his place next year.
Massa grabbed second from Button at the start, before the Briton regained his place, and was second again after Button retired.
Raikkonen, Ferrari's 2007 champion, finished fifth with former Ferrari great Michael Schumacher sixth and his Mercedes team mate Nico Rosberg seventh.
Britain's Paul Di Resta was eighth for Force India with Japan's Kamui Kobayashi giving Sauber a double scoring finish in ninth and Brazilian Bruno Senna 10th for Williams.
The start, always a cause for concern at the fastest circuit on the calendar, was clean with the first big incident coming on lap nine when Toro Rosso's Jean-Eric Vergne lost control and skidded across the track, lifting slightly into the air. He walked away afterwards.
For the first time since 1969, there were no Italian drivers in Italy's only Grand Prix. - Reuters
1 Lewis Hamilton (Britain) McLaren 1hour19min41.221
2 Sergio Perez (Mexico) Sauber +4.356sec
3 Fernando Alonso (Spain) Ferrari +20.594
4 Felipe Massa (Brazil) Ferrari +29.667
5 Kimi Raikkonen (Finland) Lotus +30.881
6 Michael Schumacher (Germany) Mercedes +31.259
7 Nico Rosberg (Germany) Mercedes +33.550
8 Paul Di Resta (Britain) Force India +41.057
9 Kamui Kobayashi (Japan) Sauber +43.898
10 Bruno Senna (Brazil) Williams +48.144
11 Pastor Maldonado (Venezuela) Williams +48.682
12 Daniel Ricciardo (Australia) Toro Rosso +50.316
13 Jerome d'Ambrosio (Belgium) Lotus +1min15.861
14 Heikki Kovalainen (Finland) Caterham +1 lap
15 Vitaly Petrov (Russia) Caterham +1 lap
16 Charles Pic (France) Marussia +1 lap
17 Timo Glock (Germany) Marussia +1 lap
18 Pedro de la Rosa (Spain) Hispania +1 lap
19 Narain Karthikeyan (India) Hispania +1 lap
20r Mark Webber (Australia) Red Bull +2 laps
21r Nico Huelkenberg (Germany) Force India +3 laps
22r Sebastian Vettel (Germany) Red Bull +6 laps
r Jenson Button (Britain) McLaren +21 laps
r Jean-Eric Vergne (France) Toro Rosso - Ferrari +45 laps
(rank: r = retired, nc = not classified)
Fastest Lap: Nico Rosberg,1:27.239, lap 53.
POINTS - DRIVERS
1 Fernando Alonso (Spain) Ferrari 179
2 Lewis Hamilton (Britain) McLaren 142
3 Kimi Raikkonen (Finland) Renault 141
4 Sebastian Vettel (Germany) Red Bull 140
5 Mark Webber (Australia) Red Bull 132
6 Jenson Button (Britain) McLaren 101
7 Nico Rosberg (Germany) Mercedes 83
8 Romain Grosjean (France) Renault 76
9 Sergio Perez (Mexico) Sauber 65
10 Felipe Massa (Brazil) Ferrari 47
11 Michael Schumacher (Germany) Mercedes 43
12. Kamui Kobayashi (Japan) Sauber 35
13. Paul Di Resta (Britain) Force India 32
14 Nico Huelkenberg (Germany) Force India 31
15 Pastor Maldonado (Venezuela) Williams 29
16 Bruno Senna (Brazil) Williams 25
17 Jean-Eric Vergne (France) Toro Rosso 8
18 Daniel Ricciardo (Australia) Toro Rosso 4
1 Red Bull - Renault 272
2 McLaren - Mercedes 243
3 Ferrari 226
4 Lotus - Renault 217
5 Mercedes 126
6 Sauber - Ferrari 100
7 Force India - Mercedes 63
8 Williams - Renault 54
9 Toro Rosso - Ferrari 12