McLaren's Lewis Hamilton added the Italian Grand Prix to his list of Formula One victories on Sunday 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.

"It's been fantastic to win here. I'm just so happy for my team, it's been a fantastic day," said Hamilton, who had added the Italian flag colors to his helmet for a race at one of Formula One's most historic and evocative circuits.

"Fernando is a two-time world champion so I'm very happy for him too," he said of his former McLaren team mate after McLaren's third win in a row.

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 and slipped to fourth overall with 140 points.

BUTTON RETIRES

The German 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. "Okay, that's enough now," Alonso said over the team radio.

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 while in second place.

While Hamilton celebrated 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.

The Spaniard, 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.

"It's unbelievable to have a podium for my team at Monza. It's very special. I went for prime tires at the start and I decided to stop late. That gave me very fresh tires at the end. It's unbelievable," said Perez.

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.

The Brazilian had seized 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.