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.
However, Lazio continued to enjoy the better chances, though they could not find a breakthrough come half time.
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