City got the point they needed to preserve their Sky Bet Championship status after a dramatic last 20 minutes at Ewood Park.
Trailing to Danny Graham’s first-half goal, City hit back with two in quick succession through substitute Jonathan Kodjia and strike partner Aaron Wilbraham.
Graham’s looping header ten minutes from time set up a nervy finale, not helped by the dismissal of Korey Smith for a push into the face of Grant Hanley, but City held on.
Lee Johnson made two changes to his side following the midweek home defeat at the hands of Derby County, recalling Wilbraham to help cope with a powerful Blackburn Rovers side with a habit of scoring goals from set-pieces.
Elsewhere, Scott Golbourne’s return at left-back paved the way for Joe Bryan to push further forward, with Bobby Reid on the right and Lee Tomlin in the number ten role behind Wilbraham. Kodjia and Luke Freeman dropped to the bench.
Both teams knew before a ball was kicked that a draw would be enough to secure their Sky Bet Championship status, but City had no intention of sitting back.
Straightaway Tomlin escaped down the right flank and clipped the ball towards the far post and the onrushing Bryan, forcing Elliott Ward to slide in and concede the game’s first corner.
It was a sign of things to come, as Wilbraham, Golbourne and Adam Matthews all got in behind the Rovers backline without picking out a black shirt, before Graham fired the hosts ahead at the end of their first meaningful attack.
When Matt Kilgallon picked up possession on the left, his pass down the line found Jordi Gomez whose low cross to the near post was perfect for striker Graham to dispatch with minimal fuss.
City responded with a half-chance through Bryan, whose shot was hard and low but straight at Jason Steele, before Gomez went close to adding Rovers’ second with a daisy-cutter that rolled only fractionally beyond the far post with Richard O’Donnell rooted to the spot.
The goal had affected City, who were missing some of their early adventure, but were inches away from drawing level eight minutes before the interval.
Steele had to be alert to prevent a header back from one of his own players flying over his head, but then lost his concentration in bowling the ball out straight to Reid.
The Bristolian could not believe his luck and immediately headed for goal, evading the last defender and pulling the trigger with a rasping shot that cannoned against the outside of the near post on its way behind.
Johnson was forced into his first substitution at half-time, with Aden Flint unable to continue having picked up a knock that caused a break in play in the first period.
Flint’s absence for the first time this season meant a fifth appearance in a City shirt for on-loan defender Alex Pearce – four of which have come off the bench.
His impact was almost immediate in an attacking sense when Wilbraham kept alive a deep corner from Marlon Pack, and Pearce turned sharply only to shoot against the legs of a defender.
Suddenly City were a different animal. Reid’s effort from distance needed a plunging stop from Steele down to his right, before another Pack corner was met by Nathan Baker, whose knockdown only just eluded Wilbraham in the Blackburn goalmouth.
Rovers were well on the back foot but did create a golden chance to double their lead when Graham’s clever backheel sent Ben Marshall striding into the box, only for the winger to drag his shot a long way wide with only O’Donnell in his way.
Johnson’s second alteration followed shortly after, this time introducing Luke Ayling for Matthews, before Kodjia replaced Reid with the best part of half an hour still to play.
The Frenchman was helping himself to goal number 18 of a hugely successful debut season within seven minutes.
Collecting the ball on the right corner of the box, a neat one-two with Smith dissected the home defence before Kodjia finished with an element of fortune, rather scuffing a low shot that bobbled beyond Steele’s dive to level things up.
It was no more than City deserved, but more was to follow. Just four minutes later Ayling showed superb composure in unfamiliar territory to lay the ball off for Wilbraham to slide in and beat Steele from ten yards to complete a dramatic turnaround.
Rovers looked shell-shocked and a depleted attendance made up of less than 12,000 home supporters were making their discontent quite clear.
But just as City looked to have full control, Graham’s looping header found the corner of the net as he helped on Jason Lowe’s cross for the game’s third goal in the space of 11 minutes.
Tensions were running high again, never more so than when Smith confronted the stricken Hanley and was dismissed for pushing the defender in the face after both men had clashed in the air.
Late pressure from the hosts ensued, but news of a heavy defeat for MK Dons meant City’s destiny was long since decided.