Liverpool beat Stoke City 6-5 in a dramatic penalty shoot-out to move into next month's League Cup final at Wembley.
Mark Hughes' side won 1-0 at Anfield on Tuesday, levelling the tie at 1-1 on aggregate and sending the second leg to penalties, but Simon Mignolet saved from Peter Crouch and Marc Muniesa.
Emre Can had failed for the hosts, but Joe Allen stepped up after Muniesa's miss to send Liverpool through. They will face Everton or Manchester City on February 28.
Marko Arnautovic had finished off an impressive passing move to put the visitors in front on the stroke of half-time, although he should have been flagged for offside.
That proved to be the only goal of the regular 90 minutes, with Roberto Firmino hitting the post in the home side's best chance.
Substitute Marco van Ginkel hit the woodwork himself during extra-time, but the two teams could not be separated before the drama from 12 yards which saw Mignolet come to the fore.
Liverpool made two changes to their team, with Jon Flanagan coming in for the injured Nathaniel Clyne and Adam Lallana, who scored the winner against Norwich City last time out, replacing Jordon Ibe.
Stoke made four changes, including bringing in Crouch in an intriguing move after the home side's recent struggles defending set-pieces.
After a quiet opening to the contest, Stoke created a good chance when a long pass from Erik Pieters caught out the Liverpool defence, but Jon Walters' left-footed shot missed the far post as Mamadou Sakho desperately attempted to get back and put in a challenge.
The hosts' only meaningful attempt in the first half saw Can unleash a powerful long-range strike that briefly had Jack Butland worried before curling past the post.
Stoke made the breakthrough in first-half stoppage time with a quality move. Bojan Krkic and Walters combined with clever passes before the former Barcelona forward squared for Arnautovic – who looked to be marginally offside – and he beat Simon Mignolet from six yards.
Much has been made of Liverpool's failure to cope with second balls from set plays, but they almost scored from such a situation themselves early in the second half as Firmino took Jordan Henderson's lay-off and lashed a shot against the foot of the post.
Christian Benteke replaced Henderson just before the hour-mark as Jurgen Klopp made a tactical switch, but it was Sakho who had the next chance, heading wide from James Milner's free-kick.
Liverpool had a late penalty claim turned down after a cross from the right deflected off the arm of Pieters as the game moved into extra-time.
Firmino tested Butland for the first time with a low shot at the start of extra-time, before Van Ginkel latched on to Crouch's flick-on and struck the post as Stoke came close to seizing full control of the tie with a second away goal.
Mignolet got down to save another Van Ginkel effort in the second half of the additional 30, but neither side could find the crucial goal to avoid spot-kicks.
Crouch had a penalty saved by Mignolet, while Can struck the post with his attempt, but both teams did well to score five of their first six attempts.
Muniesa's effort was then impressively kept out by Mignolet, allowing Allen to fire into the top corner as Anfield erupted.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.