Roma win cup derby with Lazio
Fabio Simplicio scored the winner with 13 minutes to go when he picked the ball up following a mazy run from Jeremy Menez and calmly slotted home from just inside the box.
After a gritty opening period shaded by Lazio, the game burst into life with two penalties in the first 12 minutes of the second half.
Roma took the lead on 53 minutes when striker Marco Borriello converted after Stephan Lichtsteiner handled John Arne Riise's volleyed cross.
Four minutes later, Roma's Brazilian defender Juan brought down Mauro Zarate and midfielder Hernanes sent Julio Sergio the wrong way to equalise from the spot.
Stefano Floccari almost equalised with a spectacular volley late on but it was the Giallorossi side of the Italian capital celebrating at the end.
Earlier, Sampdoria sealed a quarter-final trip to either AC Milan or Bari after overcoming Udinese 5-4 on penalties in an entertaining match in Genoa that ended 2-2 after extra-time.
Mauricio Isla's last-minute strike cancelled out Samp striker Federico Macheda's opener on 31 minutes in a 90 minutes the home side had dominated.
In a free-flowing additional period, German Denis nodded Udinese ahead on 91 minutes before Sampdoria midfielder Daniele Dessena was sent off eight minutes later.
Giampaolo Pazzini equalised for 10-man Samp from the spot three minutes into the second period of extra-time.
In a shootout that swung one way and then the other, Sampdoria left-back Reto Ziegler blasted the eighth penalty over before Junior Costa saved Denis's kick.
Another save from Costa left Fernando Tissone to coolly dink the winning penalty into the net.