Rovers came from a goal down to earn a deserved and vital win against fellow play-off chasers Bristol City at Ewood Park.
After Jamie Paterson's header gave the visitors the advantage, Rovers responded almost instantly through Corry Evans' first league goal in nearly five years.
A scorcher from Tosin Adarabioyo but Rovers in front for the first time just after the hour, before Adam Armstrong emerged from the bench to make the game safe with his 12th of the season.
The result marked the perfect return to playing for Tony Mowbray's men, who deserved the points for their play, and the scoreline could and probably should have been greater.
There were 104 days between the last outing at Derby County and the rescheduled encounter against the Robins, and it was the hosts who started the brighter at Ewood Park.
A Stewart Downing free kick cannoned into the wall before Elliott Bennett forced Dan Bentley into a sharp stop inside the opening 15 minutes.
Bennett turned provider soon after, but the skipper's free kick could only be directed wide by the head of Darragh Lenihan, as Rovers looked for an early opener.
That goal didn't come for the hosts, and it was in fact Bristol City who took the lead just after the half hour mark.
Tommy Rowe's cross in from the left was perfect for Paterson, who rose above his man to nod home, despite Walton getting both gloves on his header.
But Rovers responded almost immediately through a rare Evans strike, with the Northern Irishman ending his long wait for a goal.
The midfielder's cross looked like it was intended for the lurking Sam Gallagher, but it missed the striker and nestled nicely into the bottom right-hand corner.
Rovers will have counted themselves unfortunate to not have taken the lead into the break following an encouraging first half display from Mowbray's men.
The visitors made a double change at half time, with Jack Hunt and Nahki Wells replacing the booked Pedro Pereira and Han-Noah Massengo.
It took just three minutes for the next chance to arrive, with Brereton latching on to a stray back pass from Nathan Baker, rounding Bentley, but slipping at the crucial moment, before the danger was cleared.
From the resulting corner, Bentley dropped the ball, Joe Ramkin-Costello smashed home, but the referee blew the whistle as the ball hit the net, adjudging there to be a foul on the City goalkeeper.
Mowbray's men went in search of the next goal, with Gallagher nodding over Downing's teasing cross from the left flank.
Rovers were rewarded for that pressure by turning the score on its head in the most sensational of style via the right boot of Adarabioyo.
Whilst the ball dropped kindly for the big defender, nobody would have expected him to bend the ball into the top right-hand corner from the edge of the box to put his side back in front.
A triple change was made by Mowbray to add fresh legs, with a new look front three on just after the hour, and two of those changes linked up when Danny Graham fed Armstrong, but the diminutive forward could only curl high and wide.
But Armstrong made no mistake with his next opportunity to put Rovers 3-1 up with under 20 minutes remaining.
It was trademark from the frontman, who still had work to do when getting on the end of Evans' pass, but squared Tomas Kalas up, touched the ball inside and delivered a low, whipped effort that flew into the bottom corner.
That gave Rovers the perfect buffer to see the game out, with strong home defending comfortably keeping any visiting threat at bay to earn a crucial three points.
The result keeps the pressure on the teams in and around the top six, with Rovers looking to record back-to-back victories when we head to Wigan Athletic next weekend.
Rovers: Walton, Rankin-Costello (Johnson, 77), Lenihan, Adarabioyo, Bennett (c), Travis, Evans (Davenport, 89), Gallagher (Samuel, 65), Holtby (Graham, 65), Downing, Brereton (Armstrong, 65).
Unused substitutes: Leutwiler, Mulgrew, Davenport, Rothwell, Carter.
Goal: Evans, 37, Adarabioyo, 61, Armstrong, 71.
Booked: Lenihan, 56, Evans, 87
Bristol City: Bentley, Baker, Smith (c), Diedhiou (Afobe, 72), O'Dowda, Eliasson (Palmer, 72), Paterson, Kalas, Rowe (Dasilva, 72), Pereira (Hunt, 46), Massengo (Wells, 46).
Unused substitutes: Maenpaa, Vyner, Williams, Benkovic.
Goal: Paterson, 34
Booked: Pereira, 12
Referee: Oliver Langford.