Bristol City sent Manchester United crashing out of the Carabao Cup after Korey Smith's stoppage-time strike secured a stunning 2-1 victory.
The Championship promotion challengers joined Manchester City, Chelsea and Arsenal in the last-four as Smith's winner rocked a star-studded United side.
Joe Bryan gave City a 51st-minute lead but Zlatan Ibrahimovic equalised shortly afterwards. Then, just when extra-time beckoned, Smith was set free by Matty Taylor and delivered the goods.
United became City's fourth Premier League victim in the Carabao Cup this season after they sent Watford, Stoke and Crystal Palace packing.
United manager Jose Mourinho made 10 changes from the side that beat West Brom last weekend, with only Marcus Rashford retained. Ibrahimovic was named captain on his first start of the season, with Paul Pogba returning from suspension.
City boss Lee Johnson, meanwhile, called up goalkeeper Luke Steele - a regular Carabao Cup starter this season - instead of Frank Fielding, but the Robins were otherwise unchanged following a 2-1 victory over Nottingham Forest five days ago.
United's journey to the west country did not pass off incident-free, as the team's Bristol-bound private jet was diverted to Cardiff because of fog, a club spokesperson confirmed. It then meant a 50-mile journey by road to Bristol, although they arrived at the ground on schedule.
The home side began brightly and Josh Brownhill forced United goalkeeper Sergio Romero into an early save from a free-kick awarded following a Pogba foul, but United almost struck after 11 minutes when an Anthony Martial cross found Ibrahimovic, whose half-volley hit the bar.
And the woodwork came to City's rescue again eight minutes later, and this time it was the inside of the post after Rashford drilled a shot that left Steele clutching fresh air, but it remained scoreless at the half's midway point.
City continued to give as good as they got, though, and after Pogba curled a shot wide, Hordur Magnusson forced Romero into a scrambling save before a brilliant piece of Daley Blind defending rescued United deep inside their own penalty area.
It was the final act of an entertaining opening 45 minutes, with City good value for an interval scoreline that said everything about an enterprising approach that has been their trademark this season under Johnson.
City's Jamie Paterson collected the game's first yellow card just two minutes after the restart for a rash challenge on Pogba and United, attacking a packed away end, almost broke the deadlock when Rashford's deflected free-kick tested Steele.
But the home side then struck in spectacular fashion, counter-attacking at pace before Bryan hit a rasping shot first time that flew into Romero's net. He scored a similar goal in the previous round against Crystal Palace.
But the lead only last seven minutes, with United gaining a free-kick when Pogba was brought down, and Ibrahimovic struck, shooting straight into the corner of City's net.
Ibrahimovic was replaced 11 minutes from time, with Henrikh Mkhitaryan replacing him, and a gripping tie remained in the balance as both sides continued pressing for a potential winner.
United looked the more likely to strike next, and substitute Romelu Lukaku went close as his glancing header was turned around the post by Steele, and alarm bells were sounding for City, yet they hit back through a Paterson strike that flew narrowly over the bar.
Then came Korey Smith, and United were out, with Ashton Gate in raptures.