The Rossoneri could not afford another slip-up after the draw with Cremonese midweek and brought their top stars back, though Zlatan Ibrahimovic and Tommaso Pobega missed out. Second-placed Lazio were without Danilo Cataldi and Matias Vecino, so Marcos Antonio stepped in.
It was the worst possible start for the hosts, because within 11 minutes Rafael Leao pulled something at the top of his right thigh during a run stopped by Ivan Provedel and limped off to be replaced by Alexis Saelemaekers.
However, they still took the lead when a high press paid off, as Ismael Bennacer caught Marcos Antonio napping and was sent clear in a combination with Olivier Giroud for the acrobatic finish from 14 yards.
Mattia Zaccagni’s cross found nobody in the box, so Mike Maignan gave it to Theo Hernandez inside the penalty area, the Frenchman ran the entire length of the pitch and the powerful finish flew into the far top corner for 2-0.
Nicolò Casale deflected a Saelemaekers curler over the bar, while Bennacer turned wide from the edge of the box. Casale was booked for a late lunge on Theo Hernandez and was accidentally kicked in the face in the process.
Malick Thiaw turned a free header over the bar from Sandro Tonali’s set play and Ante Rebic had the ball in the net after wandering offside, but Lazio didn’t get a single shot on target in a disconcertingly sluggish performance.
Their only threat was an Alessio Romagnoli header over from a corner at the 90th minute and deep into stoppages Toma Basic horribly scuffing the Luis Alberto assist.
Milan 2-0 Lazio
Bennacer 17 (M), Theo Hernandez 30 (M)
(Assist: Olivier Giroud)
(Assist: Mike Maignan)