A freak first senior goal for Ryan Fredericks gave Millwall the points at The Den.
There seemed little danger when the full-back crossed from the right just before the break but the ball drifted over Dean Gerken and into the top corner.
Frank Nouble had a chance to rescue a point for Blues five minutes from time but couldn’t find the net as Town’s miserable run of only one win in nine games at The Den continued.
Carlos Edwards retained his place from the side that went out of the FA Cup at Preston in midweek, with Blues’ quartet who missed that game – Aaron Cresswell, Cole Skuse, Daryl Murphy and Luke Chambers all returning to the starting line-up following injury.
Ian Holloway, in his first home game as Millwall boss, included former Blues Lee Martin and Liam Trotter in his line-up.
Scott McDonald had the first opening of the game, dragging his shot over the bar from Scott Malone’s ball over the top.
Town were forced into a change within the first 10 minutes when Luke Hyam suffered a knee injury that sadly resulted in the midfielder leaving the field on a stretcher – Jay Tabb the replacement.
Trotter curled a right foot effort just wide from the edge of the box, then Gerken gathered from Fredericks’ cross as the Lions pushed Town back in the early exchanges.
Trotter led a break down the middle and the ever-willing Malone found space from left-back but his cross fizzed in front of Andy Keogh.
Martin couldn’t get any power with his shot on the turn as Town struggled to get a foothold in the game with David McGoldrick’s strike from distance on 25 minutes Blues’ first shot at goal.
Seconds later, Daryl Murphy tested David Forde with an excellent effort that the Millwall ‘keeper held at the second attempt.
For all Millwall’s early possession, it was Town who were creating the clearer chances and Cresswell volleyed into the ground and Forde’s hands after finding space at the far post from Edwards’ cross.
The breakthrough for the home side came six minutes before the break and out of nothing, Fredericks burst down the right but his cross was out of reach of his team-mates – but out of Gerken’s reach as well as it landed in the top corner of the net.
McGoldrick responded for Town with an effort that was blocked by Danny Shittu before Millwall were forced to make their own change, Forde replaced by Stephen Bywater, who took the tally to three ex-Blues on the pitch for the home side, the ‘keeper having spent four months on loan at Portman Road under Jim Magilton.
Edwards and Malone were both yellow carded before the break, with Christophe Berra heading a last chance of the first-half wide.
Town started the second-half on the front foot and Tommy Smith thumped a header goalwards from a Ryan Tunnlicliffe corner only for Martin to be in the right place to head off the line.
Shittu threw himself in the way of Murphy’s cross inside the box, Chambers sending a right foot effort well over.
Bywater held firm to hold Edwards’ cross at the nearpost, Martin almost getting in at the other end, while a majestic flick from McGoldrick released Tabb but Shittu again eventually cleared the danger as the game opened up.
Both sides made changes on the hour with Paul Taylor on for Edwards and Josh Wright for Nicky Bailey.
Malone sent a left foot volley just wide as Millwall threatened a second, the Lions then making a final change with Jimmy Abdou on for Trotter.
Martin wasted a great chance to put the Lions in total command as the game approached the closing stages, the wideman showing great skill to carve out the opening but then blasting over the bar from 10 yards.
Nouble replaced Tabb for the last 15 minutes as Town went three up front, Taylor sending a free-kick just over from 25 yards.
Blues had a great chance to level the scores five minutes from time, Taylor's shot was saved by Bywater from close range, the ball ran loose but Nouble couldn’t force it across the line and with it went Town’s hopes for a point.