Milan have beaten Lazio 5-4 in a sudden death penalty shoot-out to set up a Coppa Italia Final showdown with Juventus.
It ended goalless in the first leg at San Siro, then again after 120 minutes at the Olimpico, despite both teams having numerous scoring opportunities.
The tie went down to a shoot-out and the goalkeepers dominated it, as Gianluigi Donnarumma and Thomas Strakosha both saved two efforts.
In sudden death, Luiz Felipe blasted over and self-confessed Lazio supporter Alessio Romagnoli converted to winner.
The winners go through to face Juventus in the one-off Final in May. The first leg ended goalless at San Siro last month, but since then both sides have found their form in Serie A and the Europa League. They used full-strength line-ups, showing how seriously they were taking this opportunity at silverware.
The teams met for the fourth time this season after a win each and a stalemate. Within five minutes, Gianluigi Donnarumma had flown to fingertip a Ciro Immobile header over the bar, then on the corner used his legs to deny Sergej Milinkovic-Savic at the base of the near post.
Adam Marusic pounced on a Hakan Calhanoglu error, but his cross went past everyone, then Milinkovic-Savic drilled wide from a Ricardo Rodriguez howler.
Milan’s first chance came after 18 minutes with Thomas Strakosha beating away a Suso snapshot and Patrick Cutrone was offside on the follow-up.
There was almost a bizarre own goal, as Strakosha punched the Calhanoglu free kick on to Martin Caceres and the ricochet could’ve gone anywhere. Luis Alberto went over in the box on a Lucas Biglia challenge, but the referee waved play on.
Donnarumma ran a huge risk when allowing Immobile to pull the ball across the face of goal from the by-line, but was fortunate nobody was ready to tap in. Moments later, Luis Alberto’s no-look pass sent Immobile clear and this time Donnarumma was alert to parry.
After the restart, Marco Parolo failed to get enough power on a promising ball, while Davide Calabria sprung the offside trap to force a Strakosha save at the near post and Calhanoglu wasted another golden opportunity by blasting over when Suso was waiting for the pass.
Milinkovic-Savic blasted over in the final minute and Lazio were furious when the referee blew the final whistle during a Felipe Anderson counter-attack, but it went to extra time. That was the last thing these sides wanted, as the Aquile host Juventus in Serie A on Saturday and the Rossoneri have Inter in the Derby della Madonnina on Sunday.
Alessio Romagnoli made a crucial sliding tackle with Immobile running clear and Strakosha flew to palm away a deflected Calhanoglu free kick.
Stefan Radu was booked for a sliding tackle and would be suspended if Lazio reached the Final. Romagnoli performed another stunning block as Milinkovic-Savic dribbled into the area, while Parolo’s volley was deflected wide.
Nikola Kalinic should’ve scored the winner on 118 minutes when sent clear on goal with Strakosha already off his line, but incredibly blasted over the bar.
It went to a penalty shoot-out and the goalkeepers were dominant here too, as both Strakosha and Donnarumma two spot-kicks each.
In sudden death, Luiz Felipe blasted over the bar and self-confessed Lazio supporter Romagnoli kept his cool to convert the winner.
Lazio 0-0 Milan aet (0-0 agg, 4-5 on pens)
Penalties: Immobile (L, goal), Rodriguez (M, saved), Milinkovic-Savic (L, saved), Montolivo (M, saved), Lucas Leiva (L, saved), Bonaventura (M, goal), Parolo (L, goal), Borini (M, goal), Felipe Anderson (L, goal), Bonucci (M, goal), Lulic (L, goal), Calhanoglu (M, goal), Luiz Felipe (L, missed), Romagnoli (M, goal)
Lazio: Strakosha; Caceres (Luiz Felipe 68), De Vrij, Radu; Marusic (Lukaku 93), Parolo, Leiva, Milinkovic-Savic, Lulic; Luis Alberto (Felipe Anderson 67); Immobile
Milan: G Donnarumma; Calabria, Bonucci, Romagnoli, Rodriguez; Kessie (Montolivo 96), Biglia, Bonaventura; Suso (Borini 107), Cutrone (Kalinic 70), Calhanoglu