These sides drew 4-4 when they met in Serie A last month, so much was expected from this Coppa clash, even if many of the players had changed.
Udinese threatened early on, a free kick only grazing the boot of Isaac Success in front of goal, while Lazio went even closer from a set play with Vedat Muriqi’s header parried.
Rodrigo Becao made a desperate block to prevent Muriqi tapping in the Felipe Anderson cross and another header was smothered.
Mattia Zaccagni went off at half-time after Success accidentally fell on him, seemingly causing a bad ankle sprain.
Success forced a save from Pepe Reina after shrugging off Adam Marusic, then an impressive Lazar Samardzic curler was deflected inches past the far post.
Udinese started to grow into the game, so Lazio unleashed top scorer Ciro Immobile off the bench for the final 20 minutes.
Reina used his legs to deny Beto at the near stick, while Raul Moro bent a finish wide for the hosts.
There was a huge double chance for Lazio at the 87th minute, as first Sergej Milinkovic-Savic’s strike was parried by the goalkeeper, then Destiny Udogie made a desperate block on the Moro follow-up.
With the last kick of normal time, Milinkovic-Savic’s header from a corner whistled wide, so they had to go to extra time.
Udinese almost broke through when Tolgay Arslan’s free kick was deflected to clip the outside of the near post.
There was a bizarre moment when Ignacio Pussetto accidentally collided heavily with Lazio coach Maurizio Sarri on the touchline and wiped him out, but the pair hugged afterwards and smiled.
Immobile finally broke through when he ran onto a Danilo Cataldi floated ball over the top, took one touch to control and with the second flicked it over the goalkeeper for a perfect lob.
Beto fought back immediately, his header not far wide at all, and nobody was able to take advantage of a Reina error on Samardzic ball into the box.
Lazio 1-0 Udinese aet
Immobile 106 (L)