AC Milan have reached the Coppa Italia final after overcoming Lazio on penalties in Wednesday night's semi-final second leg at the Stadio Olimpico.
The hosts began brightly and tested Gianluigi Donnarumma in the opening five minutes, with Ciro Immobile seeing a header tipped over and Sergej Milinkovic-Savic forcing a leg save at the base of the near post from the ensuing corner.
Adam Marusic then pounced on a Hakan Calhanoglu error before wasting his follow-up cross, while Milinkovic-Savic made the most of a Ricardo Rodriguez mistake to get another chance at goal but ended up rifling wide.
Milan's first concrete chance did not come until the 18th minute, when Suso's first-time effort was parried away by Thomas Strakosha before Patrick Cutrone was flagged offside on the rebound.
However, Lazio continued to enjoy the better chances, though they could not find a breakthrough come half time.
The restart saw Gennaro Gattuso's charges step up their efforts and came close on a number of occasions, but Davide Calabria and Calhanoglu could not get the better of Strakosha.
With the first leg also ending goalless, the tie went to extra time, and the Rossoneri continued to ramp up the pressure, though Nikola Kalinic and Alessio Romagnoli also went on to spurn gilt-edged opportunities.
Penalties would be required to settle the tie once and for all, with Immobile converting the first spot kick for Lazio before Donnarumma and Strakosha kept out two efforts apiece.
The ensuing penalties were all successful until Luiz Felipe blasted his effort over the crossbar, leaving Milan defender - and boyhood Lazio fan - Romagnoli to fire past Strakosha to put the Rossoneri into the final, where Juventus await.
LAZIO (3-5-2): Strakosha; Caceres (Felipe 68'), De Vrij, Radu; Marusic (Lukaku 93'), Parolo, Leiva, Milinkovic-Savic, Lulic; Alberto (Anderson 67'); Immobile
AC MILAN (4-3-3): G Donnarumma; Calabria, Bonucci, Romagnoli, Rodriguez; Kessie (Montolivo 96'), Biglia, Bonaventura; Suso (Borini 107'), Cutrone (Kalinic 70'), Calhanoglu