Lewis Hamilton survived first-lap contact with Formula 1 title rival Sebastian Vettel to win the Italian Grand Prix by passing the other Ferrari of Kimi Raikkonen late on.
Hamilton overtook Vettel around the outside into the second chicane on the opening lap, and Vettel ran wide, hit the Mercedes and spun to the back.
He charged through to finish fourth behind Valtteri Bottas, as a time penalty dropped Max Verstappen from the podium to fifth.
Poleman Raikkonen maintained the lead at the start despite pressure from Vettel and a lock-up into the first corner, before Hamilton drafted the Ferraris and attacked Vettel around the outside at the Roggia chicane.
Hamilton held his car level with the Ferrari, which drifted into the side of the Mercedes and spun.
Vettel dropped to the back and had to pit as he damaged his front wing in the contact as well, but was handed a silver lining thanks to a safety car.
That was because Brendon Hartley had pulled over on the right-hand side of the circuit seconds after the start, having been pincered on the run to the first corner and suffered a front-right breakage on his Toro Rosso.
Racing resumed on lap four, with Hamilton drafting Raikkonen at the restart and overtaking into the Rettifilo chicane before Raikkonen seized first place back with an immediate counter-attack at the Roggia.
For the rest of the opening stint Hamilton gradually drifted outside of DRS range, but Raikkonen's lead never rose above two seconds before he stopped on lap 20 of the 53.
Mercedes was ready to receive Hamilton as well but instead the Briton did not pit and ran another eight laps, shipping five seconds to Raikkonen in that time.
However, Mercedes kept Bottas on track with the Finn fighting to overhaul Verstappen, who had just pitted, for third.
That meant Bottas was able to hold up Raikkonen, and within three laps of Hamilton pitting he was within DRS range of Raikkonen and on fresher rubber.
Bottas led until lap 36 before pitting, releasing Raikkonen and Hamilton to duke it out for the win.
Hamilton was closer than ever as they crossed the line to start the 45th lap. He only drew alongside the Ferrari as they approached the braking zone but nailed Raikkonen around the outside.
Raikkonen tried to fight back into the Roggia chicane but Hamilton held the place and quickly broke clear as Raikkonen nursed a blister on his left-rear tyre.
That situation was so "critical", as Ferrari put it, for Raikkonen that he fell almost 9s behind Hamilton, whose victory extended his points lead in the championship to 30 as Vettel received a late gift by nicking fourth from Verstappen.
Bottas had used his fresh tyres to quickly wipe out Verstappen's three-second lead and started to attack for the final podium place with 10 laps to go.
He got a great run on Verstappen and pulled to the outside when Verstappen moved under braking for the first chicane, which bumped Bottas onto the grass and sent him onto the run-off.
Verstappen was hit with a five-second time penalty, then defended aggressively from Bottas when his rival recovered a four-second deficit, telling his team he did not care that he was costing himself time to Vettel.
That allowed Vettel, who stopped again in his fightback to fifth on-track, to sneak within five seconds of the Red Bull and salvage another two points.
Romain Grosjean was almost unseen on television but came under immense pressure from the Racing Point Force Indias in the best-of-the-rest fight.
Grosjean just held on to claim sixth for Haas, with Esteban Ocon beating a charging Sergio Perez - who started 14th - to seventh.
Carlos Sainz Jr finished ninth for Renault, while Lance Stroll claimed only the second points finish of the year for Williams as he completed the top 10.
Two drivers joined Hartley in retirement over the grand prix. Fernando Alonso stopped his McLaren with an unconfirmed problem on lap 10, while running in the points, while Daniel Ricciardo pulled a smoking Red Bull over exiting the second chicane just before mid-distance.
|5||Max Verstappen||Red Bull/Renault||53||18.208s|
|6||Esteban Ocon||Force India/Mercedes||53||57.761s|
|7||Sergio Perez||Force India/Mercedes||53||58.678s|
|8||Carlos Sainz Jr.||Renault||53||1m18.140s|
|9||Lance Stroll||Williams/Mercedes||52||1 Lap|
|10||Sergey Sirotkin||Williams/Mercedes||52||1 Lap|
|11||Charles Leclerc||Sauber/Ferrari||52||1 Lap|
|12||Stoffel Vandoorne||McLaren/Renault||52||1 Lap|
|13||Nico Hulkenberg||Renault||52||1 Lap|
|14||Pierre Gasly||Toro Rosso/Honda||52||1 Lap|
|15||Marcus Ericsson||Sauber/Ferrari||52||1 Lap|
|16||Kevin Magnussen||Haas/Ferrari||52||1 Lap|
|-||Daniel Ricciardo||Red Bull/Renault||23||Clutch|
|-||Brendon Hartley||Toro Rosso/Honda||0||Collision|
|12||Carlos Sainz Jr.||34|