Rovers reduced the gap to the top-six to just two points after a Rudy Gestede hat-trick secured all three points at St. Andrews.
The Benin international struck three times in a sensational first half with three headers for his first hat-trick for the club, whilst Todd Kane's deflected shot saw Rovers fully in control as they lead 4-0 at the break as the home side were blown away.
Rovers could and should have had more goals to show for their display, but whilst second half strikes from Nikola Zigic and Demarai Gray gave the home side hope, Gary Bowyer's men saw the game out to stretch their unbeaten run to ten games.
With two games in quick succession Rovers had a host of players missing for the match in the Midlands. Gary Bowyer forced into making four changes.
Tommy Spurr relinquished his ever-present record with groin injury sustained in the Good Friday draw with Yeovil, whilst Lee Williamson, Tom Cairney and Michael Keane were also unavailable due to knocks.
That meant a return to the starting eleven for defenders Todd Kane and Markus Olsson. Corry Evans and Joshua King coming into midfield.
The home side also rang the changes with five changes from the side that lost 1-0 to Nottingham Forest on Saturday.
Rovers set the tone right from the off and they should have taken the lead with their first attack on six minutes.
Josh King, making his first start since mid-December, raced down the right flank before delivering a superb ball to the back post but somehow Rudy Gestede fired over six-yards out with the goal at his mercy.
Four minutes later the big man wouldn't be so wasteful, after Markus Olsson was released down the, he found Craig Conway who's deep cross was nodded back by King and Gestede powered the ball into the back of the net.
Chris Burke fired over after the ball dropped invitingly, whilst an important block from Grant Hanley prevented Paul Caddis from getting in, but attacks from the home side were few and far between as Rovers attacked time and time again.
On 20 minutes the lead was doubled, Craig Conway with a free-kick from the right and Gestede rose unmarked once more to power the ball home.
Four minutes later and it was 3-0 to the Rovers. Todd Kane, claiming a lose ball after yet more work from the impressive King, advanced before striking from 25-yards, the ball taking a deflection to wrong-foot Darren Randolph in the Birmingham goal.
Rovers continued to pour forward, Jordan Rhodes seeing a shot saved after latching onto a ball over the top from Corry Evans, before from the Irishman's pass Josh King saw a well-struck effort kept out.
Birmingham boss Lee Clark threw on Nikola Zigic after just 29 minutes, but the closest they came to getting a goal back came from a centre from Chris Burke, Grant Hanley just doing enough to put off Federico Macheda who poked wide.
Craig Conway was denied by fingertips from Randolph as the half drew to a close, but there was still time for a fourth first half strike as Conway's corner from the left was bundled home by a hat-trick hunting Rudy Gestede.
It wasn't the cleanest of connections, but the striker wasn't worried as he celebrated his 10th goal for Rovers this season.
Markus Olsson almost marked the resumption of play with a superb goal. Latching onto a bouncing ball, he struck it on the up, Darren Randolph just doing enough to get the ball away.
The home side went straight down the other end with a chance of their own, a long throw eluded Jason Lowe with Macheda bearing down on goal but Paul Robinson saved well with his legs.
Josh King then went long to send Jordan Rhodes away, he squared for Gestede but his shot deflected off defender Tom Thorpe with Randolph scrambling to save.
it was to be Rudy's last action as the hat-trick hero made way just before hour make, Luke Varney on to replace.
King was again the provider moments later with a deft flick for Rhodes to run onto but his couldn't beat the Birmingham keeper.
Despite Rovers seeing plenty of the ball in the opposition half the home side managed to pull a goal back on 63 minutes. A deep cross from Callum Reilly picking out Nikola Zigic at the back post and his looping header back across goal nestled into the bottom corner.
Enthused by the goal, Birmingham almost grabbed a second two minutes later, Zigic stretching to shoot, Robinson alert at his near post.
Liam Feeney and Chris Taylor were introduced in the closing stages as Josh King and Craig Conway, whilst the home side were left to play out the final few minutes with ten men after Emyr Huws went off with a head injury.
However there was still time for a further goal as second half substitute Demarai Gray got in on the goal act, cutting inside to beat Paul Robinson with a crisp shot to the corner.
Callum Reilly saw a well struck shot tipped around the post by the Rovers goalkeeper before six additional minutes was shown by the fourth official.
Despite the home side thrusting ball after ball into the Rovers area there was to be no late drama as the players battled to earn another vital three points.
BIRMINGHAM: Randolph, Thorpe, Burke (c), Macheda, Howard (sub Zigic 29 mins), Lovenkrands (sub Gray 68 mins), Packwood, Reilly, Caddis, Huws, Blackett (sub Hancox 46 mins).
Subs not used: Doyle (GK), Martin, Lee, Shinnie.
Goals: Zigic 63 mins, Gray 84 mins.
Booked: Macheda, Reilly, Zigic.
ROVERS: Robinson; Kane, Hanley (c), Kilgallon, Olsson; Conway (sub Taylor 83 mins), Evans, Lowe, King (sub Feeney 75 mins); Gestede (sub Varney 59 mins), Rhodes.
Subs not used: Eastwood (GK), Dabo, Lenihan, Rittenberg.
Goals: Gestede 10, 20, 45+3 mins, Kane 24 mins.
Attendance: 17,291 (including 1001 Rovers fans).