After Bury's Tom Pope hit the bar, Chris Taylor put Millwall on their way to a third win in four games with a goal direct from a corner.
Steve Morison then scored his 18th goal of the season before Ryan Lowe smashed in off the bar to pull one back.
But Taylor made the game safe by converting Morison's cross to move the Lions past Walsall into third place.
Neil Harris's side can still mathematically secure a top two finish, but closing the six-point gap to Burton Albion with just two games remaining looks unlikely.
Lowe's goal was the 200th strike of a career that has taken in eight clubs - Shrewsbury Town, Chester, Crewe Alexandra, Stockport County, Bury, Sheffield Wednesday, MK Dons and Tranmere Rovers.
Millwall kept their faint hopes of automatic promotion alive with a deserved victory over mid-table Bury.