Milan hit hard and early, but Lazio slowly but surely worked their way back into the match only to be pipped at the post in the stoppage time.
Milan XI
Gianluigi Donnarumma – 6.5
The usual brilliant performance by the goalkeeper, who had managed to put his hands on a penalty kick by Ciro Immobile, but Luis Alberto pounced on the tap-in. The strike by the Golden Boot recipient on the equalizer was instead too sharp even for him.
Davide Calabria – 5.5
He had troubles containing Adam Marusic that was one of the main sources of offense for the Eagles, but partly redeemed himself by finishing strong on the offensive end.
Pierre Kalulu – 5
His energy was very noticeable and he did thwart some dangerous actions, but he was an unlucky protagonist on both goals as he inadvertently clipped Joaquin Correa from behind to cause a PK and let Ciro Immobile slip past him on the second goal, even though he is partly excused because Lazio had a killer combination there.
Alessio Romagnoli – 6
He tidily guarded whoever operated in his area and never let the opposing forwards get past him and Lazio rarely attacked on his side of the pitch.
Theo Hernandez – 7
It was not his best performance for about 90 minutes as he did really not impose his will on the flank and Manuel Lazzari often went toe-to-toe with him, but he solved it at the buzzer with a glorious header.
Sandro Tonali – 6
He was had big shoes to fill with both starting midfielders missing and was serviceable in both phases, but without any major flashes.
Rade Krunic – 5
The coach had no alternatives to deploying him but he once again struggled in that position, made some silly fouls and misplaced a lot of passes, generally looking overwhelmed while facing more technical adversaries.
Alexis Saelemaekers – 5.5
He was more valuable on the defensive end than in the final third as Milan primarily relied on the left wing and therefore he did not have many meaningful touches, but he tracked back decently to help out Calabria.
Hakan Calhanoglu – 8
He was instrumental in all three goals, obviously converting the penalty kick and then setting up both Rebic and Hernandez with pinpoint corner kicks. Besides his contribution to the stat-sheet, he was the clear technical leader for the Rossoneri on the pitch and every dangerous action went through him.
Ante Rebic – 7
He almost single-handedly decided the tilt in the early going by bagging a lovely header and drawing a penalty kick on a tenacious action, but he faded as the game progressed and lacked some aplomb on his chances in the second half.
Rafael Leao – 5
He moved around lot but without really find the right spot to do damage, which basically made him a non-factor.
Milan Substitutes
Samu Castillejo – 6
He did slightly more than Saelemaekers on offense.
Jens Petter Hauge, Diogo Dalot and Daniel Maldini – N/A

Lazio XI
Pepe Reina – 6.5
He was let down by his defenders on the goals, as Ante Rebic and Theo Hernandez were marked too loosely, but he busted out a great save on a cross-shot by the Croatian international in the second half that prevented Milan from going up in the score earlier.
Patric – 5
Similarly to Kalulu, he was very aggressive but made a key mistake as he fouled Rebic in the box with a careless tackle and generally seemed too impetuous throughout the contest.
Luiz Felipe – 6.5
It is not easy to replace Francesco Acerbi but he had a clean performance while patrolling the middle of the back-line, making few difficult interventions look easy.
Stefan Radu – 6
Milan did not have much success when attacking on his side as he put his experience to good use, easily stymieing Saelemaekers and Castillejo.
Manuel Lazzari – 6.5
Hernandez ultimately won the duel because of the game winner, but he repeatedly kept up with the Spaniard and at times seriously challenged him with his dynamism.
Sergej Milinkovic-Savic 6.5
He was not overly impressive as he had to defend more than usual given the caliber of the opponent and he did not participate all that much to the offense, but his little ball over the top to tee up Immobile was a thigh of beauty.
Gonzalo Escalante – 5.5
He worked hard but was mostly unsuccessful and foul prone in his attempts to stop the adversaries in the midfield and did not move the ball particularly well.
Luis Alberto – 7
He is back after a poor start of the season as he found the target for the second game in a row with a very timely and cunning tap-in and dished multiple classy plays while orchestrating the majority of the offensive actions.
Adam Marusic – 6
He was caught ball-watching on early Rebic goal, but he partly atoned by motoring up and down the left flank at will, creating a lot of troubles.
Joaquin Correa – 6
He played just 30 minutes because of a bothersome calf but still left his mark as he challenged the goalie after slaloming through defenders early and then earned the PK.
Ciro Immobile – 6
A mixed day for him as well, as he got denied by Gianluigi Donnarumma from the penalty spot and had troubles getting open in the first half, but he then delivered with a stunning volley once he did wiggle free.
Lazio Substitutes
Vedat Muriqi – 5
The difference in style between him and Correa was glaring and he did not really help his team.
Danilo Cataldi – 6
He distributed the ball with more quality than Escalante and the side worked better with him in the middle.