The first F1 race on a Mugello track with super-fast corners usually used by MotoGP riders was incident-packed throughout. Two crashes on the first seven laps saw six drivers go out, and a red flag suspended the race for the first time after the second one.
A second red flag late on following Lance Stroll's heavy crash meant another grid restart — on Lap 46 of 59 — and gave Valtteri Bottas another chance to beat race leader Hamilton if he made a strong start from second.
Hamilton held firm and Renault's Daniel Ricciardo overtook Bottas, who passed him back to finish second but lose more ground to Hamilton in the title race.
Bottas pushed hard and got to within 1.1 seconds of Hamilton on the penultimate lap but the British driver clocked a fastest lap on the last one to take a bonus point.
Red Bull driver Alexander Albon drove well to finish third and clinch a first career podium that will boost his chances of keeping his seat alongside team star Max Verstappen next year.
Hamilton can equal Schumacher’s record for wins at the Russian GP in two weeks and take a step closer to matching Schumacher's record of seven world titles.