Manchester City will need to beat rivals Manchester United over two legs if they are to defend the Carabao Cup trophy this season.
City and United, who beat their neighbours in the Premier League on December 7, were paired together in the semi-final draw.
The other last-four clash is also a derby, with Leicester taking on midlands rivals Aston Villa.
City have won the trophy in three of the last four seasons, with United not making the showpiece of this competition since 2017, when they left it late to beat Southampton.
Leicester have reached the semis for the first time in 19 years, when they went on to beat Tranmere in the final, while Villa were last at this stage in 2013, losing to Bradford.
The first legs will be played in the week beginning January 6, with the return fixtures taking place three weeks later.
On drawing rivals City in the last four, United boss Ole Gunnar Solskjaer told Sky Sports: “We always want to win trophies and we want to win games.
“We’ve got a nice little draw coming up so it’ll be exciting times coming up.
“I don’t think anything is written in the stars. We just work hard and you take what you get and you do the best out of it. We’ve shown before we can do well against City.”