Leicester City will face Southampton in the other tie, with both matches taking place at Wembley on 17 and 18 April.
Chelsea, who lost to Arsenal in last year’s final, beat Sheffield United 2-0 on Sunday to reach the last four.
Leicester, yet to win the FA Cup after four defeats in the final, earned the right to face the Saints by clinching a 3-1 victory over Manchester United.
The FA Cup final will be played at Wembley on 15 May.
It could be played in front of 20,000 fans because it has been earmarked as one of the proposed pilot events to test the return of big crowds to UK venues.
Chelsea continued their impressive start under recently appointed manager Thomas Tuchel, earning a hard-fought win over Sheffield United to extend the German’s unbeaten start to 14 matches.
City, who are aiming to win a quadruple of Premier League, FA Cup, League Cup and Champions League, booked their place in the semi-finals on Saturday.
Pep Guardiola’s side earned a 2-0 win at Everton through late goals from Ilkay Gundogan and Kevin de Bruyne.
Southampton cruised into the last four – for the second time in four seasons – with a 3-0 win at Championship side Bournemouth, putting their recent troubles in the Premier League to one side.
Nathan Redmond inspired the Saints, who have lost 10 of their past 12 top-flight matches, with two goals and an assist.
Leicester, who thrashed Southampton 9-0 in the Premier League last season, knew they would face Ralph Hasenhuttl’s side if they could find a way past United.
The Foxes and United were drawing 1-1 when the semi-final draw was made at half-time at the King Power Stadium, before second-half goals from Youri Tielemans and Kelechi Iheanacho secured the 3-1 win.