Lazio beat Juventus 2-1 following a dramatic finale on Tuesday to reach the Italian Cup final with a 3-2 victory on aggregate.
The game was heading for extra time when Juve's Arturo Vidal equalized during six minutes of stoppage time, only for Sergio Floccari to head a late winner.
Claudio Marchisio should have sent Juventus into the final on the away goals rule but he fired wide, right in front of an empty net after Federico Marchetti had pulled off a desperate save to parry Sebastian Giovinco's shot at point-blank range.
"We are satisfied with the result, it was a crazy game at the end, but we had the right determination to take home the result," Lazio coach Vladimir Petkovic said. "We deserve this joy and must always play at this level, as a great team cannot afford dips in intensity during a season.
"The squad is really growing and tonight's performance proved it against a strong side like Juventus."
Alvaro Gonzalez had given Lazio the lead eight minutes into the second half, getting in between two Juventus players to head home a stunning cross from Cristian Ledesma.
Both goals were Lazio's only shots on target all match.
Lazio will meet either Roma or Inter Milan in the final. Roma won the first leg 2-1 and should it complete the task in April, it would set up a mouthwatering cup final between the two capital sides in Rome's Stadio Olimpico.
Roma has the edge on Inter Milan
"We want to win the Italian Cup, regardless of who our opponents will be," Petkovic said. "For the fans, a Rome derby in the final would be the ultimate game, but I have no preferences."
Both teams had penalty claims turned down in the first half. Mirko Vucinic appeared to be brought down by Marchetti in the eighth minute and Lazio striker Miroslav Klose was fouled by Mauricio Isla on the half hour.
Juventus was also denied a penalty after the break when Giovinco appeared to be held back in the area. Coach Antonio Conte has already been banned for two Serie A games for his comments after Staurday's contentious 1-1 draw against Genoa.
Conte opted for sarcasm in his post-match comments.
"Oh they weren't penalties, the referee is always right," he said. "In fact, Vucinic dived. He should've been booked for simulation and Marchetti didn't touch him at all. It was a definite penalty on Klose because he was hit violently.
"In the second half Giovinco went down twice in the area. He should have been sent off because you cannot try to con the referee like that."
Juventus again paid the price for failing to make the most of its opportunities.
Giovinco should have scored in first-half stoppage time after doing brilliantly to feint past Michael Ciani, but he then scuffed his shot straight into Marchetti's hands, when one on one with the Lazio goalkeeper.
Hernanes suffered a nasty injury on the hour mark when he appeared to lose consciousness after a clash of heads with Luca Marrone. The Lazio midfielder was conscious when stretchered off but bleeding heavily.