An early Jed Wallace free-kick condemned Reading to defeat at The Den, as José Gomes' first game in charge ended in defeat for the Royals.
Soon after Wallace's goal, a straight red card for Tyler Blackett meant for an even higher mountain to climb for the remaining 81 minutes.
And yet Reading's ten men had most of the play and some great chances to get level. A spirited performance which merited more. The Royals would end with nine men on the field as Leandro Bacuna sent off for an altercation with Shane Ferguson.
Gomes’ first squad selection included a return to action for Liam Moore, taking the captain’s armband at centre-half, as well as for Yakou Meite in the forward positions.
The hosts were first to get a shot away – an inswinging free-kick by Shane Ferguson was met by the head of captain Shaun Hutchinson, but Anssi Jaakkola did well to save from Tom Elliott after the knock-down.
But, minutes later, a free-kick from a similar position resulted in an opener for the Lions. Wide on the right, a right-footed effort by Wallace – struck with power and precision – beat the goalkeeper at his near post to put the hosts ahead.
A minute later, the situation went from bad to worse when Reading were reduced to ten men. After overrunning the ball, Blackett tried to slide in on Wallace to regain possession – but with two feet off the floor, referee Andy Davies deemed the challenge worthy of a straight dismissal. More than 80 minutes to go, a man down.
Millwall’s numerical advantage ushered in a period of dominance for the home side, who could have doubled the advantage but for Omar Richards’ goal-line clearances. A series of corners and free-kicks in particular were causing danger, but Andy Yiadom slotted in at centre-half and competed willingly in the aerial affairs.
Despite not being able to over-commit in sending numbers forward, Reading were still able to create opportunities through their attacking talent. John Swift drove into space and lashed goalwards from 25 yards, forcing Jordan Archer into action for the first time.
And then Meite’s free-kick from wide on the right needed a firm block by the wall as the Royals looked to get a foothold in the game.
Lions forward Elliott could consider himself somewhat lucky to not be the second player dismissed; after twice fouling goalkeeper Jaakkola with sliding challenges, he then sliced through the back of Reading defender Moore. Only a yellow card issued for the third of those challenges.
Moore was fine to continue after being grounded - and like the rest of the Royals, he continued to battle bravely. A hearty block from the centre-half in added time ensured that Lee Gregory's name wasn't added to the scoresheet.
Half-time: Millwall 1-0 Reading
Seconds after the restart, Wallace threatened a second for Millwall as he took a pirouetting first touch to control in the area, but stabbed the volley wide of Jaakkola's near post.
But Reading were the ones who started the half looking like they had the creative spark. Danny Loader, picking up in the inside-left position, popped a dipping effort towards goal but it was straight at the goalie.
At the other end, Ryan Leonard made a sweet connection with a half-cleared ball but it shanked only narrowly wide of target from the edge of the D.
The Royals continued to exert pressure and Mo Barrow's clever touch around the corner took him past Hutchinson and to the byline; former Royal Jake Cooper just did enough to prevent Meite from steering in. Working a short corner, Leandro Bacuna shot wide on his left as he wriggled free in the area.
As the game ticked over the hour, both managers looked to their bench for changes in the final third; Steve Morison and Sam Baldock each introduced.
A foul by Cooper, 30 yards from goal, nearly brought about a Royals equaliser in stunning fashion when Swift stepped over the dead ball. A fierce, dipping effort flummoxed the goalkeeper and crashed off the underside of the bar, but bounced down on the wrong side of the line from a Reading perspective. So, so close to the leveller.
With two minutes to go, Ferguson and Bacuna tangled on the touchline and after consulting with his assistant, the referee dipped into his back pocket for a second time to dismiss the Royals midfielder.
The task was too big with nine men. The Royals kept plugging away in search on an unlikely leveller, but they couldn't quite make it happen.
Full-time: Millwall 1-0 Reading
Millwall: Archer, Meredith, Hutchinson (c), Cooper, J.Wallace (O'Brien 76), Gregory, Ferguson (Skalak 88), Romeo, Tunnicliffe, Elliott (Morison 57), Leonard.
Unused subs: Amos, Karacan, M.Wallace, Brawn.
Goal: Wallace (8).
Yellow: Elliott, Gregory, Ferguson.
Reading: Jaakkola, Yiadom, Richards, Blackett, Moore (c), Bacuna, Rinomhota, Swift (Osho 82), Barrow, Loader (Baldock 63), Meite (McCleary 73).
Unused subs: Mannone, O’Shea, Meyler, Aluko.
Red cards: Blackett, Bacuna.
Referee: Mr Andy Davies
Attendance: 12,202 (572 away)