It was an extraordinary Derby Della Madonnina, with a goal and a red card from Zlatan Ibrahimovic, a clash with Romelu Lukaku, and a last-gasp winner from Christian Eriksen for Inter.
In the semifinals, the winners of this game will go on to face Juventus or SPAL. These rivals are still fighting for the Scudetto, as, despite a 3-0 loss to Atalanta on Saturday, the Rossoneri were crowned Winter Champions, sitting two points ahead of the Nerazzurri.
Although Danilo D’Ambrosio was Inter’s only absentee, Mario Mandzukic, Sandro Tonali, Pierre Kalulu, Matteo Gabbia, Ismael Bennacer and Gianluigi Donnarumma were missed by Milan.
In the opening few minutes, Rafael Leao drilled inches high, while Zlatan Ibrahimovic’s header was beyond both Brahim Diaz and the far post.
Simon Kjaer was booked for Alexis Sanchez’s late tackle and soon after went down injured, making way for Milan debutant Fikayo Tomori.
Via a ball, Romelu Lukaku collected a Matteo Darmian and turned Alessio Romagnoli, forcing a reaction save with the foot of Ciprian Tatarusan.
However, when Ibrahimovic controlled on the edge of the box, Milan broke the deadlock, took an extra touch, and forced the angled drive through the legs of Aleksandar Kolarov to rebound off the inside of the far post.
Alexis Sanchez felt he was equalizing the header on the cross of Ivan Perisic for 37 minutes, but it was cleared off the line first by Theo Hernandez, then by Tomori.
The brilliant volley of Marcelo Brozovic from the edge of the box flew just past the far post, but a huge row between Lukaku and Ibrahimovic dominated the halftime whistle. It was necessary to hold the former Manchester United teammates apart, with Lukaku frustrated, physically restrained by his teammates. The row between Lukaku and Romagnoli had originally been sparked, then others began to join in. Both forwards were booked, meaning that Lukaku would be suspended for the first leg if Inter got to the semi-finals.
In the second half, Achraf Hakimi came on and instantly set up Alexis Sanchez for a six-yard volley, checking Tatarusanu at the nearest post.
Tomori made a big block out of another Hakimi low cross on Lukaku, but Ibrahimovic got a second yellow card for Kolarov’s trip and was sent off.
Inter were flowing forward in waves and the penalty area, Leao went for an ill-advised sliding tackle on Barella. The referee had no clear view, but the decision was inevitable after a VAR on-field analysis, with Lukaku firing the penalty off the underside of the crossbar.
The drama was not over, as after referee Paolo Valeri suffered a thigh injury, the play was stopped for several minutes, so he had to exchange places with fourth official Daniele Chiffi. This suggests that 10 minutes of stoppages had to take place.
The Inter siege continued, Tatarusanu smothered Hakimi’s shot from the box’s edge, then Lautaro Martinez pounced on a terrible back-pass to go clear on the target, only to shoot Tatarusanu straight.
After a nonchalant combination with Lautaro, the goalkeeper made another excellent save on Lukaku from point-blank range.
On the edge of the box, Meite tripped Lautaro Martinez and replacement Christian Eriksen curved a divine free-kick into the nearest top corner to give him a free-kick.