City will play the first leg at Old Trafford.
The draw for the semi-final was held immediately after the game had ended at the Kassam Stadium.
READ: Oxford 1-3 City: Match report
The first leg of the Carabao Cup will be played on either the 6/7 January, with second leg at the Etihad Stadium on either 27/28 January.
The dates will be confirmed in due course.
City have won the competition for the past two seasons and are looking for a third successive triumph.
City and United have met seven times in the League Cup over the years and this will be the third time the Manchester giants have clashed in the semi-final.
The first meeting was in 1969, with City winning the first leg 2-1 and drawing the return 2-2 to progress to the final.
In 1974, United won 1-0 at Old Trafford, with City winning 4-0 at Maine Road in 1975.
It was 35 years before the teams met again in the competition - again at the semi-final stage - in two epic legs during the 2009/10 campaign.
Carlos Tevez scored twice as City won the first leg 2-1 at the Etihad, but United won the return 3-1 to progress to the final.
The Reds won the last meeting 1-0 in 2016 meaning both teams have won three times, with one game drawn.
Leicester City will play Aston Villa in the other semi-final.
The final will be held at Wembley on Sunday 1 March 2020.