For the second time in a week Rovers were grateful for a late equaliser as they earned a share of the spoils at The Den.
Against Watford on Tuesday night Rudy Gestede scored late to earn a point, on this occasion it was the returning Joshua King who was hero with a 92nd minute leveller for ten-man Rovers.
The first half saw a host of chances as Scott McDonald had a header tipped over by Paul Robinson and Owen Garvan struck the post with a free-kick for the home side.
Rovers threatened themselves as Luke Varney and Jordan Rhodes were both kept out by Millwall 'keeper David Forde, whilst Grant Hanley headed over a Craig Conway corner when well placed.
Slower to get going, the second half burst into life on 55 minutes when Millwall were awarded a penalty after Grant Hanley had brought down Steve Morison in the area.
The Rovers captain received his marching orders as Shaun Williams made no mistake from the spot.
But Rovers hit back on 65 minutes, Michael Keane scoring his first goal for the club as he arrived at the back post to meet a Conway corner.
However Keane went from hero to villan as he conceded a second penalty, bringing down Simeon Jackson two minutes from time. The substitute making no mistake from 12-yards.
But as five minutes of added time were shown, Rovers again showed their never-say-die spirit shone through as King struck to earn a point.
Gary Bowyer made two changes from the side that drew with Watford in midweek.
A groin injury ruled out striker Rudy Gestede so Luke Varney came into the starting eleven, whilst the return of Grant Hanley saw a defensive reshuffle as Todd Kane dropped to the bench, Michael Keane playing at right back.
There was also a welcome return for Tom Cairney and Joshua King who were both named amongst the substitutes.
For the home side, they made four changes from their 3-2 loss at home to Birmingham City on Tuesday.
Just like the midweek match at Watford, the opening exchanges were full of goal opportunities for both sides.
Two minutes in and a Matt Kilgallon free-kick was flicked on by Luke Varney but strike partner Jordan Rhodes couldn't beat Millwall captain David Forde who had come well out of his goal area.
Millwall then had an excellent chance themselves as Carlos Edwards fed Ryan Fredericks down the right, the full back sent the ball over to where Scott McDonald headed goalwards only to see Paul Robinson tip over the bar.
From the resulting corner kick the Lions threatened once more, Owen Garvan with a corner from the right, Steve Morison stooping low to head, but Robinson claimed on the line.
There was no let up in goalmouth chances as a threaded ball from David Dunn saw Luke Varney bear down on goal, but Forde saved well one-handed as the striker shot first time.
Millwall then went even closer from a free-kick after Tommy Spurr had fouled Fredericks to right of the penalty area. Owen Garvan took the kick left-footed, the ball beating everyone in the box only to smack the upright.
As the half wore on the opportunities weren't as frequent. The returning Grant Hanley should have done better when he connected well to a Conway corner, but the Rovers captain nodded inches over the bar. Then a Tommy Spurr long throw caused confusion in the Lions' box as Forde missed the ball but nether Dunn nor Rhodes could capitalise.
Corry Evans then fired over from a Rhodes knockdown, whilst at the other end Scott McDonald cut inside to test Robinson, but the Rovers stopper got down one-handed to save.
It was a half full of chances but otherwise little quality, leading to the scoreline being goalless at the break.
Neither side made a change at the break as the second half was slower to get going than the first.
But it burst into life ten minutes in when the home side were awarded a penalty and Rovers reduced to ten men. Grant Hanley and Steve Morison tussling in the are, but as Hanley went to ground, referee Nigel Miller inexplicably pointed to the penalty spot before issuing a red card to the Rovers captain. It seemed doubly harsh on Hanley as not only did he appear to be fouled by Morison, but Matt Kilgallon had got back to cover.
Shaun Williams took the resulting penalty kick, making no mistake as Paul Robinson dived in the opposite direction.
Both sides immediately made substitutions, Millwall sending on Simeon Jackson for Fred Onyedinma, whilst former Millwall man Chris Taylor replaced David Dunn.
With the Lions' tails up, Owen Garvan fired over from distance before Scott McDonald tried his luck cutting in from the left, Robinson watched on as the ball flashed just past the post.
Millwall's lead lasted a touch under ten minutes as ten-man Rovers drew level from a set-piece of their own. Craig Conway fired over a 65th minute corner and as the Rovers players queued up at the back post to connect it was Michael Keane who nodded home for his first Rovers goal.
Josh King was then brought on at the expense of Jordan Rhodes as Rovers looked to utilise the Norwegian's pace. But it was Keane who could have had a second, only to be denied by the fingertips of Forde as he headed back across goal.
King then threatened himself but saw his shot in the area blocked by Mark Beevers before Craig Conway's ambitious free-kick from 35-yards flew just over the bar.
But with just three minutes of the ninety remaining Rovers were made to pay the penalty once more as goalscorer Keane was adjudged to have brought down substitute Simeon Jackson in the box when it looked like he'd got a foot to the ball.
Jackson himself took the honours and although Robinson dived the right way, the ball had enough on it to sneak home.
As Rovers pushed forward from the restart they were caught on the break, Jackson bore down on goal but Robinson made a superb block.
There were howls of derision from the home fans as five additional minutes was shown by the fourth official, and for the second time in a week, Rovers were on hand to grab an injury-time leveller.
Rovers were denied in the 91st minute as David Forde pulled off a stunning reflex save to deny Josh King, but as play was kept alive, the ball was put back into the mix with King somehow poking the ball home through a host of bodies.
There was still time for late drama as Simeon Jackson headed wide at the back post from Steve Morison's looping pass, but there was to be no denying ten-man Rovers on the road as they fought to the death to earn a share of the spoils.
MILLWALL: Forde (c), Morison, Lowry, Fredericks, Beevers, Williams (sub Malone 82 mins), Abdou, McDonald, Garvan, Onyedinma (sub Jackson 59 mins), Edwards (sub Maierhofer 83 mins).
Subs not used: Bywater (c), Woolford, Upson, Robinson.
Goals: Williams (pen) 57 mins, Jackson (pen) 88 mins.
ROVERS: Robinson, Keane, Hanley (c), Kilgallon, Spurr; Evans, Williamson, Conway, Dunn (sub Taylor 59 mins); Varney, Rhodes (sub King 76 mins).
Subs not used: Eastwood (GK), Kane, Olsson, Dabo, Cairney.
Goals: Keane 65 mins, King 90+2 mins.
Attendance: 8840 (392 Rovers fans).