Chelsea will take on Southampton in the last four, while Manchester United face Tottenham Hotspur.
The west Londoners, beaten finalists last season, took the lead at the King Power Stadium just before half-time.
Alvaro Morata coolly clipped the ball beyond the advancing City goalkeeper Kaspar Schmeichel after being set up by Willian. It was the Spaniard’s first goal in 13 games.
Leicester hit back with 15 minutes remaining. Jamie Vardy forced the ball home at the third attempt after Vicente Iborra's first two efforts were blocked and saved by Chelsea goalkeeper Willy Caballero.
Chelsea manager Antonio Conte paid tribute to his players' physical and mental strength four days after losing 3-0 in Barcelona to go out of the Uefa Champions League.
"After a game like the Barcelona game - don't forget we spent a lot of energy - to play 120 minutes with this freezing weather, it wasn't easy," he said.
"We showed a great desire, great will to fight, great will to reach the semi-finals and to go for the second time in a row to Wembley."
Southampton reached the last four after a 2-0 win at third tier Wigan Athletic. Pierre-Emile Hoejberg and Cedric Soares scored in the second-half to send the Premier League outfit into the semis for the first time since 2003.
Manchester United and Tottenham Hotspur booked their places in the semi-finals on Saturday with victories over Brighton and Swansea City respectively.