READING came from behind to win 2-1 at The Den and inflict Millwall’s seventh home league defeat of the season.
Andy Keogh’s 16th minute goal put the Lions in front but reading drew level in first half stoppage time through Hal Robson-Kanu.
And substitute Adam Le Fondre came off the bench to grab a 76th minute winner, despite the substitute being in an offside position when the move which led to the decisive goal began.
As expected, Kenny Jackett went with the same starting XI which won 3-1 last weekend at Burnley.
The only changes came on the bench, where Darren Ward and Ryan Mason were named at the expense of Scott Barron and former Royal Darius Henderson.
Another ex-Reading player James Henry had a couple of early shots for the Lions sandwiched in between a crucial block by Paul Robinson on Jason Roberts’ fifth minute shot, although bizarrely the referee signalled for a goal-kick instead of a corner.
After a scrappy start, it was Millwall who got their noses in front on the quarter hour.
Harry Kane delicately flicked the ball into the path of Keogh, who ran into the area before placing a low shot beyond the reach of visiting keeper Adam Federici.
Mikele Leigertwood’s ambitious 35 yard effort went way over, while Keogh came within inches of connecting with Henry’s cross before Bouazza’s delivery almost deceived Federici with Harry Kane unable to capitalise on the loose ball.
Henry was booked after protesting against a late tackle by Ian Harte which went unpunished, with the winger firing a free-kick just over at the other end two minutes later following a foul by Matthew Connolly on Keogh 25 yards from goal.
Ian Harte fired a 41st minute free-kick from 20 yards just over the bar, while Kane’s low shot from 35 yards moments later was never going to seriously trouble Federici.
Robinson’s just failed to connect with Henry’s stoppage time corner but it was Reading who drew level in stunning style on the stroke of half-time.
Harte’s corner was punched clear by David Forde, but only into the path of Robson-Kanu, whose well-struck volley from inside the area flew past the Millwall stopper.
Reading made a change at the start of the second half by replacing Connolly with Jay Tabb.
Robinson required a spell of treatment on the pitch but was able to continue and Bouazza placed a 55th minute free-kick harmlessly over the bar.
Henry dragged a low shot from 25 yards off target three minutes later, while Kane came within inches of applying a touch to another Henry free-kick into the danger zone.
Noel Hunt came off for Le Fondre in the 64th minute and Josh Wright, who struck from long range last week, tried his luck again from 30 yards seven minutes later but this time without the same result.
Millwall made their first change within 60 seconds as Bouazza was replaced by Liam Feeney.
But there was big controversy when Reading took the lead for the first time on 76 minutes.
Le Fondre initially paused when a through ball was put through to him because he was in a clear offside position.
But there was no flag raised and Jason Roberts went for the ball instead before crossing to Le Fondre, who slotted home from inside the area, much to the fury of the home supporters.
Dany N’Guessan entered the field in place on of Kane three minutes later before Henry made way for Mason as Kenny Jackett made his third and final change with seven minutes remaining.
N’Guessan laid the ball into the path of Keogh but his 87th minute from 20 yards went wide, while Tony Craig placed a header straight at Federici from Wright’s free-kick.
That came as the fourth official signalled four additional minutes of stoppage time which Millwall were ultimately unable to make the most of as they went down to yet another league defeat on home turf.
Follow us on Twitter @NewsShopperSprt
Millwall: Forde, Dunne, Lowry, Robinson, Craig, Henry (Mason 83), Wright, Abdou, Bouazza (Feeney 71), Keogh, Kane (N’Guessan 79). Subs not used: Allsop, Ward.