Rovers strikers Rudy Gestede and Jordan Rhodes maintained their personal battle to be the club's top scorer with late goals to down Millwall at Ewood Park.
Gestede took his tally to 20 this campaign with a goal 12 minutes from time, before Rhodes wrapped up proceedings in added time with his 19th of the season.
In a game that took it's time to get going, neither side threatened meaningfully in the first half aside from a Paul Taylor effort that saw David Forde dive full length to save, but thankfully the game sprang into life in the second.
Millwall striker Martyn Woolford saw a shot hacked off the line by Tommy Spurr before Chris Brown rattled the crossbar from a Ben Marshall centre at the other end.
Jason Steele made the save of the game on 68 minutes when Lions' substitute Paris Cowan-Hall broke through on goal, but the Rovers stopper stood strong to block the shot.
Rovers made the visitors pay with the opening goal ten minutes later, Craig Conway delivered into the box, the ball skimmed off a head, and Gestede volleyed home at the back post.
Both sides had chances in the closing stages as play was spread from end-to-end. Thankfully Rovers were finally able to take one, substitute Jordan Rhodes was sent through on goal by Gestede and he cooly slotted home to secure all three points.
Ahead of the game Gary Bowyer made five changes to the side that drew on Saturday and that included a first start for loan man Paul Taylor.
And it was Taylor who was the bright spark in an otherwise dull first half as the midfielder created the best opportunities for the home side.
On 14 he cut in from the left to let fly with a right-footed effort, but David Forde in the Millwall goal saved at the second attempt.
An organised Lions side restricted Rovers, without really threatening themselves, Aiden O'Brien and Martyn Woolford only finding the gloves of Jason Steele with strikes from distance.
Rovers have struggled injury-wise in the centre of defence and it got worse for the home side when captain Matt Kilgallon limped off with a thigh injury, that meant a debut for Darragh Lenihan, who is normally a midfielder but was thrust in alongside Tommy Spurr.
The first half ended as it had started - with a chance from Taylor, this time cutting in from the right to shoot left-footed but Forde pulled off a fantastic diving save to keep his effort out.
There was a better tempo to the game at the start of the second half with the visitors almost taking the lead straight away.
A ball to the back post saw Marshall under pressure from Woolford, and the Millwall man somehow got his shot away, Spurr back in the nick of time to clear off the line.
Rovers responded with an excellent move with Marshall racing down the right, but his cross was planted against the woodwork by Chris Brown. The striker unfortunate not to be celebrating his first goal in a blue and white shirt as the ball bounced away to safety.
Millwall made a double change just past the hour mark and one of those introduced, Paris Cowan-Hall, should have opened the scoring on 68 minutes.
The substitute broke through on goal, but with just Steele to beat the forward's effort was blocked by the keeper's legs.
Rovers responded with a double change themselves with Tom Cairney and Jordan Rhodes introduced, but neither were involved as the home side finally broke the deadlock with 12 minutes to go.
Like the game it the weekend it was Craig Conway who would play a huge role, attacking the Millwall defence down the left before delivering into the box, the ball skimmed off the head of Sidney Nelson to where Gestede lurked at the back post and he volleyed home with aplomb.
Suddenly the game opened up with Cairney missing a host of chances to put the game beyond the visitors. Firstly a ball across the box from Conway found hit's way to the midfielder but saw his attempt blocked. Then when Olsson centred, Cairney again fluffed his lines with a shot just past the post.
But it certainly wasn't one way traffic as Aiden O'Brien should have done better when he shot straight at Steele, substitute Gary Taylor-Fletcher firing wide of goal with another chance in an increasingly open game.
Cairney missed a third great opportunity to grab a goal in added time, but fellow sub Jordan Rhodes spared his blushes, latching onto Gestede's through-ball to slot home with minutes to go.
As a game it was a slow burner, but when it sprang to life it was Rovers who took their chances and the visitors who didn't.
ROVERS: Steele, Marshall, Spurr, Kilgallon (c) (sub Lenihan 37 mins), Olsson, Conway, Spearing, Evans, P. Taylor (sub Cairney 71 mins), Brown (sub Rhodes 71 mins), Gestede.
Subs not used: Eastwood (GK), Henley, Williamson, O'Sullivan.
Goals: Gestede 78 mins, Rhodes 90+3 mins
MILLWALL: Forde, Dunne (c), Bailey, Woolford, Beevers, Gueye (sub Cowan-Hall 61 mins), Fuller (sub Gregory 61 mins), Harding (sub Taylor-Fletcher 83 mins), O'Brien, Abdou, Nelson.
Subs not used: Archer (GK), Hooiveld, Martin, Powell.
Attendance: 12884 (including 257 visiting supporters)