Daniel Ricciardo finished third for McLaren ahead of his team-mate Lando Norris, who kept Hamilton at bay for the duration of the race, which was disrupted by a first-lap crash for 2020 Monza winner Pierre Gasly.
The result means Verstappen will start Sunday’s grand prix from the front of the grid, with Ricciardo alongside him on the front row, as Bottas will drop to the rear of the field for taking a fresh Mercedes engine before Friday evening qualifying.
At the start, Bottas led easily away from pole, pursued by Verstappen, as Hamilton’s slow getaway meant he was forced to defend against Norris’s run to the inside of the first corner.
The world champion was then swamped by Ricciardo and Gasly on his left-hand side and, as the pack closed together for the first corners, Hamilton was squeezed behind the AlphaTauri and Norris on his right to drop to sixth by Turn 2’s exit.
As Bottas, Verstappen and Ricciardo ran clear through the long Curva Grande, Gasly – who had briefly tagged the McLaren’s left-rear and damaged his front wing as a result – shot off into the gravel when his wing broke apart and went underneath his front wheels.
Gasly skated into the barriers on the outside, bouncing back into the gravel before coming to a stop where the Frenchman climbed out.
The incident meant the safety car was called – just after a clash between Yuki Tsunoda and Robert Kubica between the two apexes of the della Roggia chicane spun the latter around – as Gasly’s car was recovered.
The race restarted on lap four of 18, with Bottas romping clear to a 1.6s lead over Verstappen, with Hamilton chasing the two McLarens – both on soft tyres versus the mediums on the two leaders and the second Mercedes.
Robert Kubica, Alfa Romeo Racing C41, spins ahead of Yuki Tsunoda, AlphaTauri AT02, Mick Schumacher, Haas VF-21, and Nikita Mazepin, Haas VF-21
Photo by: Mark Sutton / Motorsport Images
As Norris held Hamilton at bay, even as DRS was activated at the start of lap six, Ricciardo quickly fell away from Bottas and Verstappen.
The leaders were the only drivers able to lap in the 1m23s and, by lap 10, they were over five seconds clear of Ricciardo.
Bottas and Verstappen exchanged fastest laps, but the Mercedes’ advantage never looked under threat as the gap fluctuated towards and then back from the two-second mark approaching two-thirds distance.
The leading duo continued to pull away from Ricciardo over the rest of the race, with Bottas in command up front – eventually winning by 2.3s.
Ricciardo came home 14.5s behind the winner, with Norris defying Hamilton, who at times was sliding around dramatically in his countryman’s wake, to the flag, where Hamilton ended up 20s behind his victorious team-mate.
Charles Leclerc led home his Ferrari team-mate Carlos Sainz Jr in sixth and seventh – the former recovering from feeling unwell at the end of FP2 to take the start of the sprint race from eighth, and benefitting from the first lap melee at the opening turns.
Sainz, whose Ferrari had been hastily rebuilt after his heavy FP2 crash at Ascari, came home where he started and ahead of Antonio Giovinazzi.
Lewis Hamilton, Mercedes W12, Charles Leclerc, Ferrari SF21, and Carlos Sainz Jr., Ferrari SF21
Photo by: Steve Etherington / Motorsport Images
The Alfa Romeo driver held off the charging Sergio Perez to the finish, with the Red Bull driver involved in the race’s other main flashpoint – his attempts to pass Aston Martin’s Lance Stroll on lap nine.
After attacking to the outside of Turn 1, Perez cut across the raised kerbs in the runoff beyond and stayed ahead as the pair raced towards Curva Grande.
Red Bull ordered him to give the place back, which he did approaching Ascari on the same lap, and on the next tour Perez pulled off a similar move at Turn 1 to get in front of Stroll and then start his ultimately fruitless pursuit of Giovinazzi.
Stroll finished 10th ahead of Fernando Alonso and Sebastian Vettel.
Tsunoda pitted after his clash with Kubica and recovered back up the order to finish 16th with Kimi Raikkonen’s temporary replacement at Alfa Romeo coming home between the Haas cars in 18th, as Gasly was the race’s only retirement.
F1 Italian GP Sprint race result – 18 laps