Rovers made it three consecutive Championship wins in a row for the first in almost a year – but needed a late show at Ewood Park to secure it.
Adam Armstrong netted a 90th minute winner, firing home from 12 yards, before a frantic finish saw Millwall furiously appeal for two penalties in injury time, the second just as the referee blew the final whistle.
There remains still question marks over Rovers’ home form, despite a second win in five days, but they will take the points as they come in a packed Championship schedule.
The reason they find themselves as top scorers in the division owes much to their swashbuckling displays on the road, but at home, things haven’t always been as free-flowing.
Millwall looked set to become the fifth team in eight home matches to leave East Lancashire with at least a point as bar a first half wonder-strike from Harvey Elliott, opportunities were at a premium.
But Armstrong showed his predatory instincts in the 90th minute, his 14th Championship goal of the season moving them within two points of the top six ahead of the visit to Brentford.
There were four Rovers changes, two of which were enforced, and included a new role for Harvey Elliott.
Rovers’ midfield has been the one area which has seen the most change this season, and there was a new trio this time around as Elliott dropped in alongside Lewis Holtby and the recalled Bradley Johnson.
That made for attacking look, and contributed to the more open feel to the game, which Millwall were looking to exploit.
In particularly they targeted the left side of the Rovers defence where the two enforced changes came, with Daniel Ayala and Amari’i Bell lining up next to each other as both started for the first time since October 21.
Rovers have historically struggled against teams lining up with three central defenders, and it looked that way again as Millwall started the brighter.
They were winning the majority of second balls, Shaun Williams sounding a warning in the 13th minute as his dipping volley landed on the roof of the net.
Barnsley had pointed the way in that pressing Rovers high up the pitch may be a good tactic to use, and they struggled once again, with Jon Dadi Bodvarson not punishing a poor Thomas Kaminski kick, opting against trying to find the empty goal from range.
For Rovers, Harvey Elliott didn’t need any second invitation as against the run of play Rovers took the lead 25 minutes in. He was involved in the build-up, linking up with Armstrong before curling expertly out of the reach of Bartosz Bialkowski.
That was a stand-out moment for Rovers were soon on the back foot, avoiding an equalising after a poor Ayala clearance thanks to Darragh Lenihan twice throwing himself in the way of Jed Wallace strikes.
The Lions were to be denied for long, a deserved equaliser arriving 11 minutes before the break as they continued to pour forward, the ball worked to Scott Malone on the left edge of the box as his side-foot effort found the roof of the net.
Armstrong and Ben Brereton were rarely involved, a sign of Rovers’ first half struggles, but they came into the game more just before the break. Brereton twice fired over the top after dropping deeper, either side of Armstrong just failing to find the unmarked Elliott with his cross which also narrowly evaded the far post.
Ayala was enduring a difficult night, Bodvarson getting the better of him shortly after the break before forcing Kaminski into a smart save with his legs.
Armstrong fired over just before that, and Holtby just after, but the second half was marred by the injury to Brereton who was replaced on the hour after receiving treatment.
Dolan was the man called for, playing from the left, and a rare attempted ball over the top midway through the half presented him with a shooting opportunity, only to curl over from a promising position 20 yards out.
Indeed, another shortly after saw him break into right channel, this time attempting to lift the ball over Bialkowski who was equal to it.
There was no real suggestion this was going to catch light in the closing stages however, Bodvarsson curling over, via a deflection, a rare moment of goalmouth action.
Mowbray was wanting to open up the game even more, only to hold his hands to his head as Bell wasted a good chance by a poor shot which dribbled wide.
That came as Rovers made a triple substitution, introducing Downing, Buckley and Rothwell, going without a centre forward for the closing stages as they looked to pass their way through.
That saw them end the game with plenty of the ball, but little threat, until Armstrong struck right at the death after Downing had seen a shot blocked.
Millwall were left with nothing to lose as they threw the kitchen sink at Rovers late on, twice thinking they should have had a penalty, but Rovers, by hook or by crook, held on to extend their unbeaten run to six.