Match ends, Stoke City 1, Tottenham Hotspur 3.
Tottenham moved to within two wins of a first major trophy since 2008 after seeing off Championship Stoke City in the Carabao Cup.
Gareth Bale's third goal since returning on loan from Real Madrid saw Jose Mourinho's side take the lead, the Wales forward beating Andy Lonergan with a flicked header from Harry Winks' wonderful delivery.
Spurs were dominant and should have scored more before half-time but Lonergan, part of Liverpool's title-winning squad of last season, made good saves to twice deny Dele Alli as well as Harry Kane.
Stoke were much better after the interval and equalised with their first shot on target when Jacob Brown picked out Jordan Thompson to produce a controlled finish past Hugo Lloris.
But Ben Davies' 25 yard finish in-off the post ensured Spurs regained the lead before Kane lashed home his side's third goal.
Tottenham avoided holders Manchester City in the semi-final draw and will now face Championship side Brentford in early January in a one-off tie.
- Latest from Wednesday's EFL Cup action plus semi-final draw
- Why Kane is the ultimate team player - Alan Shearer analysis
- Bale 'back in love with football'
- EFL Cup semi-final draw
Spurs get the job done
Thirteen months after Mourinho's appointment, Spurs are within touching distance of a long-overdue trophy after doing the business on a wet and windy night in the Potteries.
They were given a scare when Thompson levelled but their quality saw them over the line as they returned to winning ways after losing top spot in the Premier League.
Mourinho, looking to win the cup for a fifth time with a third different club after three triumphs at Chelsea and one with Manchester United, made seven changes but showed how seriously he rates the competition by starting the likes of Kane and Lloris.
It was Bale who set them on their way as he scored in consecutive appearances in the competition eight years and 53 days apart, with his previous goal coming against Norwich in October 2012.
The tie would have been over before half-time but for Lonergan.
Despite losing Bale to a calf injury, Spurs moved up a gear after conceding thanks to Davies' first goal since September 2017, ending a run of of 111 games without scoring in all competitions, before Kane found the net for the 16th time this season following Moussa Sissoko's threaded pass.
However, Mourinho was visibly upset with Stoke's equaliser.
Former Crystal Palace and Republic of Ireland striker Clinton Morrison, who was at the match for BBC Radio 5 Live, said: "Before that goal Dele Alli tried a flick. Jose Mourinho went out to the touch line and said 'your flick has cost us that goal'. There's going to be more to that. Jose is not happy."
Lonergan shines but with no reward
This was one of Stoke's biggest games since losing their place in the Premier League in 2018 yet they failed to produce a single shot in the opening 45 minutes.
Michael O'Neill's side were much better after half-time and scored a fine equaliser before being undone by the visitors' quality.
O'Neill, who was without three keepers because of injury and another who was cup-tied, gave Lonergan his first competitive game since March 2019.
Lonergan impressed as Spurs threatened to take the tie away from the hosts in the first half.
O'Neill made it clear before kick-off that winning promotion back to the top-flight is the club's number one priority.
Having finished 15th in the Championship last season, Stoke appear to be moving in the right direction and currently sit seventh in the table.
They will hope for more big nights like this as they push for a Premier League return.
'Spurs showed their class' - what they said
Stoke City boss Michael O'Neill said: "We expected Spurs to come with a strong team, maybe not as strong as they started with, they have got quality all over the pitch.
"I thought we took a lot of credit for our performance in the second half, we equalised with a good goal.
"In the first half we were placid and timid and didn't affect anything at all. Spurs showed their class and quality with their finishes."
Tottenham boss Jose Mourinho, speaking with the Everton v Manchester United quarter-final still to be played, said: "To win this trophy we need to win two matches. But they are two very difficult matches.
"The teams that are going to be there are very difficult teams.
"Manchester City are very difficult. Brentford, for me, the way they play they are not Championship, they are Premier League."
Another semi-final for Mourinho - the stats
- Jose Mourinho has reached the semi-finals of this competition for the fifth time, going on to win it on each of the previous four occasions his sides have got to this stage (2004-05, 2006-07, 2014-15 and 2016-17).
- Spurs have reached the semi-finals for the second time in the last three seasons, eventually being knocked out by Chelsea in 2018-19.
- Stoke have lost each of their last six matches against Spurs in all competitions, their worst ongoing losing run against any side.
- Jordan Thompson scored his first goal in 42 appearances in all competitions.
- Ben Davies has scored his first goal for Tottenham since September 2017 vs Huddersfield, ending a run of 111 games without a goal in all competitions.
- Spurs striker Harry Kane has scored 10 goals in 11 games against Stoke in all competitions, making the Potters the 5th team he's reached double figures against in his club career.
Stoke return to Championship action on Saturday when they travel to face Coventry City (15:00 GMT), while Spurs have an extra day to prepare for Sunday's Premier League match at Wolverhampton Wanderers (19:15).
More to follow
- 37CollinsBooked at 30mins
- 3FoxSubstituted forFletcherat 34'minutes
- 20Oakley-BootheSubstituted forVokesat 79'minutes
- 18BrownSubstituted forPowellat 71'minutes
- 40Nna Noukeu
- 6D Sánchez
- 9BaleSubstituted forSon Heung-Minat 45'minutes
- 20AlliSubstituted forLamelaat 66'minutes
- 27Lucas MouraSubstituted forSissokoat 66'minutes
- 7Son Heung-Min
- 45Alves Morais
- Darren England
- Shots on Target
Second Half ends, Stoke City 1, Tottenham Hotspur 3.
Attempt saved. Sam Vokes (Stoke City) right footed shot from a difficult angle and long range on the left is saved in the bottom left corner. Assisted by Nick Powell.
Attempt missed. Tommy Smith (Stoke City) right footed shot from outside the box misses to the right. Assisted by Steven Fletcher with a headed pass.
Attempt blocked. Steven Fletcher (Stoke City) header from the centre of the box is blocked.
Foul by Harry Kane (Tottenham Hotspur).
Jordan Cousins (Stoke City) wins a free kick in the defensive half.
Attempt blocked. Harry Kane (Tottenham Hotspur) left footed shot from the centre of the box is blocked. Assisted by Son Heung-Min.
Foul by Ben Davies (Tottenham Hotspur).
Nick Powell (Stoke City) wins a free kick in the defensive half.
Attempt saved. Danny Batth (Stoke City) header from the left side of the box is saved in the top left corner. Assisted by Harry Souttar.
Attempt missed. Steven Fletcher (Stoke City) header from the centre of the box misses to the left. Assisted by Tommy Smith with a cross following a set piece situation.
Foul by Erik Lamela (Tottenham Hotspur).
Jordan Cousins (Stoke City) wins a free kick in the attacking half.
Harry Winks (Tottenham Hotspur) wins a free kick on the right wing.
Foul by Nick Powell (Stoke City).
Erik Lamela (Tottenham Hotspur) wins a free kick in the attacking half.
Foul by Danny Batth (Stoke City).
Goal! Stoke City 1, Tottenham Hotspur 3. Harry Kane (Tottenham Hotspur) right footed shot from the right side of the box to the high centre of the goal. Assisted by Moussa Sissoko.
Corner, Tottenham Hotspur. Conceded by Harry Souttar.
- MOTD Top 10: Who are the greatest Premier League captains?
- Radio 1's Festive Live Lounge: The best Christmas songs performed by the biggest artists