Lazio rocked Siena with a late equaliser before winning a penalty shoot-out to reach the last eight.
Siena had edged ahead in the capital in the 56th minute, thanks to an own goal from Lorik Cana.
But five minutes into stoppage-time, Lazio found a leveller to keep their cup campaign alive, French defender Mickael Ciani heading in.
Goalkeeper Juan Pablo Carrizo played a starring role over 120 minutes for Lazio, and after the match ended tied at 1-1 following extra-time he saved from Simone Vergassola and Marcelo Larrondo as the Rome club won the shoot-out 4-1. Catania await Lazio in the last eight.
Fiorentina had a more straightforward route, setting up a clash with Roma next thanks to a 1-0 win at Udinese, secured by Borja Valero's 36th minute goal.
There was drama in Naples, though, as Bologna sneaked past Napoli with another late goal.
Edinson Cavani put Napoli in front after 12 minutes but they were pegged back when Cristian Pasquato netted for Bologna in the 38th minute.
Panagiotis Kone had the final say in the 90th minute, sending Bologna through to a quarter-final against Inter Milan.
Don't miss any live and exclusive football coverage this festive season. Click here to visit Sky Sports' Festive Calendar