League One City, who were 2-0 down after 38 minutes, claimed the biggest scalp of their recent giant-killing exploits to advance to the fifth round and end Chelsea’s hopes of challenging for an unprecedented quadruple.
Chelsea reject Filipe Morais levelled the fourth-round tie with 15 minutes to go before Jon Stead, the scorer of City’s first, teed up Andy Halliday for the winner eight minutes from time.
And substitute Mark Yeates tucked in a stoppage-time fourth to inflict the Blues’ first home loss this season and spark jubilant celebrations from Phil Parkinson’s visitors.
Elsewhere, Chelsea loanee Patrick Bamford and Kike struck in the second half as Middlesbrough produced a shock 2-0 win over Premier League champions Manchester City.
England Under-21 international Bamford pounced on a defensive misunderstanding early in the second half and substitute Kike settled a thrilling fourth-round tie in injury time at the Etihad Stadium.
City dominated the first half but were denied repeatedly by Boro’s former Real Madrid goalkeeper Tomas Mejias and their luck seemed out when Frank Lampard’s deflected 89th-minute shot hit the post.
Had that gone in they might have snatched a replay but Kike stunned them in the closing moments.
Boro deserved their success for their resilience in defence and incisiveness up front, with the excellent Lee Tomlin also hitting the woodwork.
But the result will also raise further questions of the wisdom of City’s decision to travel to Abu Dhabi for a five-day warm-weather training camp in the build-up to the game.
Sheffield United remain in the competition and earned themselves a replay back at Bramall Lane after a 1-1 draw against Preston North End at Deepdale.
Former United striker Paul Gallagher, who scored twice to help defeat Norwich in the last round, fired home a brilliant 30-yard free-kick to give the hosts the lead.
North End then had a great chance to double their advantage on 40 minutes as Kyel Reid’s cross from the left picked out Neil Kilkenny, who opted to knock across goal rather than shoot from six yards.
United, who face Tottenham in the second leg of the Capital One Cup semi-final on Wednesday, almost levelled after 53 minutes but Diego De Girolamo saw his effort cleared off the line by Calum Woods.
But Nigel Clough’s side found an equaliser on 68 minutes as substitute Jamie Murphy cut back for Italy Under-20 international De Girolamo to strike home left-footed from eight yards.