Jordan Rhodes' confident finish after 22 minutes put Rovers in front before Martyn Waghorn was on the end of a brilliant team move to equalise just before half-time.
Parity was shortlived, though, as Marshall headed Rovers back in front just after the restart, and David Dunn's first goal since August five minutes from time gave Blackburn a cushion.
A howler from Simon Eastwood allowed Steve Morison to pull one back late on but it wasn't enough to halt the Lions' horrendous away record this season, which has now seen them lose five of their last six on the road.
Meanwhile, Blackburn have lost just once in their last nine at Ewood Park and are primed for a play-off push.
Rovers boss Gary Bowyer drafted in Josh King for Lee Williamson following the excellent draw at QPR last time out, while Steve Lomas named an unchanged side after the victory over Wigan.
A quiet opening was ended when Blackburn took the lead after 22 minutes. The build up was as route one as it gets, with Rhodes latching onto a long ball and evading Mark Beevers before clinically stroking his 12th of the season into the bottom corner from the edge of the area.
But despite creating little, Millwall equalised with a superb team goal three minutes from half-time. Liam Trotter's audacious flick gave him space to slip in Morison on the right and he crossed for Waghorn to slide in at the far post.
Rovers were back in front within three minutes of the restart. Tommy Spurr's superb left-wing cross found the unmarked Marshall 12 yards out and he headed emphatically into the corner.
It marked the first time Rovers have scored more than one goal in a game at Ewood since the end of August and they were clearly hungry for more. Chris Taylor's fierce drive was brilliantly tipped over by David Forde just two minutes after the goal.
Millwall were looking to avoid a third successive away defeat and almost equalised through Woolford, who shrugged off a defender before seeing his shot tipped onto the crossbar by Eastwood.
Rhodes almost got a second on the break but Forde managed to push him wide before tipping his effort behind.
And Rovers grabbed a third from the resulting corner when Rhodes flicked on to Dunn, whose close range header went in off the post.
Millwall ensured a nervy finish when Morison bundled in from close range after Eastwood missed his attempt to gather a corner but Rovers held on.