Birmingham stormed back from a terrible start to shock promotion-chasing Bristol City with a 3-1 Sky Bet Championship win at Ashton Gate.
The home side were in front inside 45 seconds, Jamie Paterson capitalising on an under-hit back-pass from Marc Roberts to round goalkeeper Lee Camp and shoot home from a narrow angle.
But Birmingham responded well and equalised after 23 minutes when home goalkeeper Dan Bentley parried a Jeremie Bela shot into the path of Scott Hogan, who was left with a tap-in.
The visitors went in front on the half hour when Andreas Weimann inadvertently headed a Jude Bellingham cross from the right into his own net, glancing the ball past Bentley, who had no chance.
From then on Blues defended strongly until stoppage time when Lukas Jutkiewicz turned his marker inside the box and coolly fired past Bentley to seal the points.
City head coach Lee Johnson declined to change his team after four consecutive Championship wins without conceding a goal and named January signings Nahki Wells, Markus Henriksen and Filip Benkovic on the bench.
Birmingham boss Pep Clotet made six changes in an effort to freshen up his side after the midweek FA Cup replay win against Coventry, which went to extra time.
Despite the poor start and Paterson's early goal that decision looked to be paying dividends as Blues were quicker to the ball for much of an exciting first half.
Bellingham was denied by a last-ditch block from Ashley Williams after Ivan Sunjic had teed up a great chance with a 20th-minute cross.
The visitors were back on level terms with less than half an hour on the clock when Hogan made the most of his chance for his second goal in as many games.
Jay Dasilva forced a 40th-minute save from Camp with a close-range effort from an angle, but despite their early boost, Bristol found it hard to carve out clear chances.
They were behind when Wiemann got his head in the way of Bellingham's cross and flicked the ball over Bentley and into the goal.
Johnson had seen enough by the 58th minute and sent on Wells and Benkovic for Dasilva and Jack Hunt. Another change soon followed, with Adam Nagy replacing Han Noah Massengo.
Paterson chipped narrowly wide for the hosts before Blues made their first change after 76 minutes, Wes Harding taking over from Bela.
A better Bristol chance fell to Famara Diedhiou after 81 minutes, but after cleverly chesting down a Williams chip, the striker volleyed high over the crossbar when he should have equalised.
With nearly 1,800 travelling fans cheering them on, Birmingham battled hard to hold their advantage against late Bristol pressure.
But the home side were still largely frustrated and when they pushed extra men forward in stoppage time, Jutkiewicz punished them with his late strike.
The result extended Birmingham's run to eight unbeaten games in league and cup, while Johnson must pick up the pieces after seeing his hopes of gaining a firm foothold in the top six dashed.