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.
Stay updated with the latest news, gossip and football stories by following us @Football_P