Aston Villa twice trailed at Manchester City but fought back through a Gareth Barry own goal and Gabriel Agbonlahor to cancel out strikes by Mario Balotelli and Aleksandar Kolarov and take the game into extra time.
Charles N'Zogbia put the visitors ahead and a second goal for Agbonlahor clinched the match and stunned the Premier League champions.
Everton left their fightback too late at Elland Road and exited the competition 2-1 at Championship Leeds.
Aidan White gave the Yorkshire side a fourth minute lead which was doubled with twenty minutes remaining by Rodolph Austin.
Everton gave themselves hope with nine minutes remaining when Sylvain Distin’s header reduced the deficit, but it was too little too late.
League One MK Dons failed to take advantage of ten-man Sunderland who had Lee Cattermole dismissed in the first half.
Wigan fell behind at West Ham to an early Modibo Maiga effort, but rallied through two goals by Mauro Boselli, an Ivan Ramis strike and a Jordi Gomez penalty to come out on top in the all Premiership clash.
Swansea needed a last-minute goal by Garry Monk to secure a hard-earned 3-2 win at League One Crawley.
The Swans went ahead through Miguel Michut after 27 minutes before the hosts levelled through Josh Simpson just before half-time.