The tie looked destined for extra-time, but with just seconds remaining, Sergio Floccari netted a late winner to take Lazio through.
Vladimir Petkovic's side will now face city rival Roma or Inter Milan in the final.
In the English Premier League, Manchester City endured a frustrating night as it was held to a goalless draw by bottom of the table QPR.
On a day dominated by speculation linking City striker Mario Balotelli with a move to AC Milan, manager Roberto Mancini might have hoped for a victory to concentrate on instead.
But his side was unable to find a way past a stubborn and determined Rangers defense, which managed to hold on for a precious point in its fight against relegation.
Instead, Mancini was left to focus on the impending departure of the enigmatic Balotelli, who is set to undergo a medical at Milan Wednesday before completing a move to Italy.
Mancini told Sky Sports News: "He had this big chance to come back to Italy and play for another top club like Milan.
"I hope Mario can continue to improve and show he's always ready because I think he can, if he works hard, continue growing and become one of the best players in the world.
"It's important for Mario to be in Italy with his family. I think that would be good for him."
Aston Villa's nightmare run of form continued with a 2-1 home defeat by Newcastle.
Villa, which had suffered consecutive defeats by a lower league opposition in its previous two matches, now sits in the relegation zone.
Paul Lambert's team has failed to win a Premier League game since December 15 and has taken one point from a possible 18.
On this occasion, it gave itself an uphill task after falling two goals behind early on to a Newcastle team also struggling at the wrong end of the table.
Papiss Cisse and Yohan Cabaye both scored within the first 31 minutes to give Newcastle a comfortable halftime advantage.
Villa pulled one back four minutes after the interval through Christian Benteke's penalty, but it couldn't prevent Newcastle from claiming a first away win of the league season.
In the night's other games, Sunderland held Swansea to a goalless draw while Wigan came from two goals down to draw 2-2 at Stoke.