Milan needed a penalty shoot-out to finally get the better of Torino and book their place in the Coppa Italia quarter-final.
The winners of the Round of 16 tie will go on to face Inter or Fiorentina in the quarter-final. It’ll be decided after 90 minutes, extra time or penalties.
These sides already met in Serie A on Saturday, with Milan winning 2-0, but both line-ups were completely transformed, including Zlatan Ibrahimovic’s first start since a thigh strain on November 22.
Davide Calabria tested Vanja Milinkovic-Savic from distance and Ibrahimovic’s chest and half-volley was just over the bar, but Ciprian Tatarusanu had to make the first genuine save on Amer Gojak’s turn on the edge of the box.
After the restart, Hakan Calhanoglu and Jens Petter Hauge came on, but Leao had a huge chance when sent clear by Brahim Diaz, firing straight at the goalkeeper.
Milan had a huge double chance on 57 minutes, as first Calabria forced a reaction save from Milinkovic-Savic, then Diogo Dalot fired the rebound onto the inside of the upright.
Moments later, the same post was struck again by Calabria, whose volley from 10 yards took a deflection off Cristian Ansaldi.
Milinkovic-Savic got into a mess on a back-pass and Leao tried to pounce, they collided, but the referee waved away penalty appeals and red-carded Gianluigi Donnarumma on the bench for dissent, which means the goalkeeper will be suspended in the Coppa.
The Toro goalkeeper did better using his legs to parry a Calhanoglu shot from a tight angle, but Vojvoda went off with a dislocated shoulder.
Brahim Diaz should’ve won it late on, but was leaning back and ballooned over the bar, then Gojak went clear on the counter, but fell too easily under pressure from Sandro Tonali.
Just like when they met in the Coppa Italia last season, Milan and Torino could not be divided after 90 minutes and went to extra time.
Theo Hernandez tested Milinkovic-Savic from a tricky angle and Calhanoglu drilled inches wide, while 19-year-old debutant Giacomo Olzer hit one straight at the goalkeeper.
Gojak spotted Ciprian Tatarusanu off his line and attempted an audacious lob, but it was off target. Unlike last season, when Milan won in extra time, this went to penalties.
All the spot-kicks were converted except for Tomas Rincon, whose effort was parried by Tatarusanu. Even Torino goalkeeper Vanja Milinkovic-Savic scoring one himself wasn’t enough to save the Granata.
Milan 0-0 Torino (aet, 5-4 on pens)
Penalties: Belotti (T, goal), Kessie (M, goal), Lukic (T, goal), Theo Hernandez (M, goal), Lyanco (T, goal), Tonali (M, goal), Rincon (T, saved), Romagnoli (M, goal), V Milinkovic-Savic (T, goal), Calhanoglu (M, goal)
Milan: Tatarusanu; Kalulu, Musacchio (Kessie 62), Romagnoli, Dalot; Calabria (Theo Hernandez 62), Tonali; Castillejo (Calhanoglu 46), Brahim Diaz (Olzer 106), Leao; Ibrahimovic (Hauge 46)
Torino: V Milinkovic-Savic; Bremer (Lyanco 83), Nkoulou, Buongiorno; Vojvoda (Lukic 83), Segre, Rincon, Linetty (Singo 63), Ansaldi (Murru 63); Gojak, Zaza (Belotti 92)
Sent off: G Donnarumma 73 (M, from bench)