DANNY Hylton came off the bench to claim the winner as Oxford United recovered from an awful start to pull off a Capital One Cup upset at Bristol City.
It looked like the visitors were in for a long night when they fell behind to Joe Bryan's goal for the highly-fancied Sky Bet League One side in the second minute.
But from then on it was the men from League Two who impressed and thoroughly deserved to progress into round two.
Junior Brown had a goal disallowed for offside late in the first half, but the 512 away fans were celebrating after the break.
Carlton Morris equalised from a corner and with the tie heading for extra time, substitute Hylton coolly scored the winner three minutes from time.
Max Crocombe started in goal for the ineligible George Long as one of four changes from Saturday's 1-0 defeat to Burton Albion.
Johnny Mullins replaced the injured Michael Raynes, while Jon Meades made his competitive debut more than a year after joining the club.
The Welshman came in for Michael Collins, with David Hunt coming into the side for Danny Rose to allow Joe Riley to play further forward.
The visitors began as underdogs and the odds of an upset lengthened considerably when they fell behind in 70 seconds.
Jake Wright blocked a shot from Jay Emmanuel-Thomas, which ricocheted to Bryan at the back post, who cut on to his right foot and curled a shot into the net.
It was a big blow, but United shrugged it off and were the better side for the rest of the half.
Head coach Michael Appleton had urged his side to take more risks in the final third following Saturday's defeat and there was evidence they had taken it on board.
In the opening quarter of an hour Junior Brown and Josh Ruffels curled shots over, while Joe Riley tested City goalkeeper Frank Fielding with a sweet strike from 30 yards.
Crocombe had a nervous moment at the other end when he dropped a cross at the feet of Emmanuel-Thomas, before United scrambled to block.
Ruffels limped off with a knock, replaced by Collins, but the visitors continued to press for an equaliser.
They did have the ball in the net four minutes before the break, when Brown headed in a Hunt cross.
United's celebrations were quickly snuffed out, though, by an offside flag.
It appeared to sting City into action and they finished the half strongly.
Emmanuel-Thomas fired a low shot wide, while in stoppage time Wright was needed to clear off the line and deny Bryan after a clever free-kick from Marlon Pack.
When the game restarted after the break, United resumed their patient probing.
Ten minutes into the half it finally paid off.
Hunt forced a corner, which was swung in by Riley for Morris to steer in.
City attempted to assert themselves, but instead United retained a measure of control.
Midway through the half Riley almost got in on goal, only for Morris to fractionally over-hit the pass.
The home fans grew increasingly agitated at their side's inability to hold on to the ball.
United grew bolder, getting more men forward as the game went on.
And three minutes from the end of normal time, the breakthrough came.
Brown got in down the left and pulled a low cross back for Hylton, who slotted home his first goal for the club to settle the tie.
Bristol C (3-5-2): Fielding, Ayling, El-Abd, Osborne, Wagstaff, Wynter, Pack, Reid (Williams 62), Bryan (Burns 82), Baldock, Emmanuel-Thomas (Wilbraham 82).
Unused subs: Richards, Freeman, Elliott, Cunningham.
Booked: Bryan, El-Abd.
Oxford Utd (4-2-3-1): Crocombe, Hunt, Mullins, Wright, Newey, Meades, Ruffels, Riley, Potter, Brown, Morris.
Subs used: Collins (Ruffels 19), Hylton (Morris 72) Unused subs: Cavanagh, S Long, Rose, O'Dowda, Roberts.
Referee: Lee Collins (Surrey).
Attendance: 6,145 (512 visitors).