Rovers made it eight unbeaten on their travels in an entertaining draw at St. Andrew's on Tuesday night.
But it was a frustrating night for Gary Bowyer's side who were twice pegged back and missed key chances as they had to settle for a share of the spoils in an end-to-end encounter.
The visitors started strongly and took a deserved lead after just eight minutes, Matt Kilgallon heading home his first goal of the season from Craig Conway's corner.
The closest the hosts came to levelling in the opening 45 was right on half-time as a Stephen Gleeson shot skimmed off a head, forcing Eastwood to readjust and make a smart stop.
Birmingham started the second half well with Ben Marshall superbly clearing a Clayton Donaldson shot off the line. But the home side's pressure told as Jonathan Grounds headed them back on level terms on 64 minutes from another set-piece.
Parity lasted just four minutes with Rovers regaining the lead. A Markus Olsson centre was spilled by Darren Randolph and Jordan Rhodes needed no second invitation to slot into the empty net.
Substitute Rudy Gestede saw a header kept out with Conway blocked on the follow-up as the visitors looked to stretch their advantage.
Instead it was Birmingham who came back a second time, Demarai Gray capitalising at the back post to make it 2-2 with 12 to go.
Both sides had chances to win the match in an exciting end to the game, Marshall and Gestede going close for Rovers, whilst they were thankful for a late Eastwood save from Grounds.
But having lead twice and spurned golden opportunities Rovers will be disappointed not have taken all three.
Rovers made three changes from the side that picked up a point at Reading at the weekend.
Craig Conway and Corry Evans both came into the eleven, whilst John O'Sullivan was handed his first start on the ground where he made his senior debut as a substitute two years ago.
Adam Henley, Lee Williamson and Tom Cairney were the men to make way, named amongst the substitutes, as was Rudy Gestede who scored a hat-trick here at St. Andrew's last season.
For the home side, they named the same starting XI and substitutes that defeated Wolverhampton Wanderers 2-1 last time out.
The sun was still shining brightly at St. Andrew's when the game got under way, and it was Rovers who started the match strongly.
The visitors served notice inside a minute as Ben Marshall sent a searching ball forward for Jordan Rhodes, but the striker couldn't get it under control in the area and Darren Randolph was able to claim.
Diego Fabbrini replied with a rising drive over the bar, before Jay Spearing matched his effort with a decent strike from distance.
Then following Chris Brown's knockdown Conway cut inside as play opened up for the shot, but his strike was straight at the Birmingham keeper.
There had been more attempts at goal in the first five minutes of this game than had been on show throughout the 90 at the Madejski at the weekend, and inside eight Rovers would be in front.
Craig Conway delivered a corner from the right and Rovers captain Matt Kilgallon rose above everyone to nod home for his first goal of the season.
Rovers were enjoying plenty of possession but were unable to gain any further goal chances at goal as the final ball was often found lacking, at the other end David Cotterill fired goalwards but it was straight at Simon Eastwood.
As the half wore on the home side were seeing more of the ball without troubling the Rovers' back line. It wasn't until the 45th minute that Eastwood was forced into making a meaningful save. The keeper readjusting well after Stephen Gleeson's long-range effort skimmed off a head on it's route to goal to ensure it was the visitors who lead at the break.
The St. Andrew's pitch was heavily watered at half-time and that caught out both sides in the early second half minutes as the player's footing was regularly lost. Although Ben Marshall couldn't blame the surface as he put a free-kick from a promising position high over Randolph's goal.
However but for a sensational clearance from Marshall the home side would have been level on 57 minutes. A couple of ricochets of the ball fell kindly and as Clayton Donaldson broke in on goal he lifted the ball over the advancing Eastwood, but the Rovers defender got back in time to spectacularly clear off the line.
That woke the home side up and they forced Rovers further and further back. Spurr and Spearing both made key blocks, Rob Kiernan heading inches wide.
But on 64 minutes the pressure from Birmingham told and like the opener, it came from a simple corner kick. Cotterill fired the ball into the box and Jonathan Grounds arrived to head them back on level terms.
That prompted a double change from Gary Bowyer as Tom Cairney and Rudy Gestede replaced O'Sullivan and Brown, but neither were involved as Rovers regained the lead within four minutes of Birmingham's equaliser.
After a corner had been cleared to the far side, Markus Olsson sent a high ball back into the box, Randolph spilled a routine catch and Rhodes was on hand to tap into the empty net for goal number 18 of the season.
Rovers then had two great chances to double their advantage as Cairney broke away down the left, his cross picked out Gestede but Randolph saved his header, the ball came out to Conway but his goal bound shot was blocked.
It would prove to be a pivotal moment as the home side raced back down the other end to get back on level terms for the second time in the match.
A cross from the right somehow found it's way through to Demarai Gray and he cut inside the box before finding the back of the net via a deflection.
Gary Rowett then made a double change with Wes Thomas and Lloyd Dyer replaced Fabbrini and Cotterill as they looked to make the most of their momentum as play became increasingly stretched, but it was Rovers who could have regained the lead when with a minute left a Corry Evans ball up to Gestede was nodded down to Cairney, he looked in on goal but substitute David Davis was there to tackle the Rovers man on his touch.
With four additional minutes there was still time for a winner with both sides going for it despite little riding on the match.
A flowing move involving Gestede, Conway and Cairney saw Marshall played in on goal but Randolph saved with his legs. Then from a Spurr long throw Gestede met it well but headed into the side netting.
In what was turning into an exciting end to the match Eastwood then made an outstanding save from Grounds as the defender again found space in the box.
Rovers raced back towards goal with Gestede claiming a handball as he looked to grab all three points, but the officials waved away the striker's claims, quickly followed by the final whistle.
It was a breathless end to the game, one that the Rovers will feel they should have won if they had taken the chances that came their way.
BIRMINGHAM: Randolph, Grounds, Gleeson, Donaldson, Cotterill (sub Dyer 79 mins), Tesche (sub Davis 89 mins), Kiernan, Morrison, Caddis (c), Gray, Fabbrini (sub Thomas 79 mins).
Subs not used: Doyle (GK), Novak, Shinnie, Spector.
Goals: Grounds 64 mins, Gray 78 mins.
ROVERS: Eastwood, Marshall, Spurr, Kilgallon (c), Olsson, O'Sullivan (sub Cairney 67 mins), Spearing, Evans, Conway, Brown (sub Gestede 67 mins), Rhodes.
Subs: Steele (GK), Henley, Williamson, P Taylor, Lenihan.
Goals: Kilgallon 8 mins, Rhodes 68 mins.
Attendance: 15,066 (including 277 Rovers supporters).