Match ends, Millwall 2, Reading 1.
Millwall 2-1 Reading
George Saville scored two late goals as Millwall came from behind to steal victory against Reading at The Den.
Millwall came close to breaking the deadlock just before the break when Jed Wallace played through Fred Onyedinma but he failed to connect.
Dave Edwards, who joined the Royals from Wolves in the summer, headed Sone Aluko's corner in to put Reading ahead.
Their lead lasted just seven minutes as Saville rose to head the ball home and volleyed in to seal it for the hosts.
The victory was Millwall's first against Reading in all competitions since August 2004 and ended their 12-game winless run against the Royals.
Edwards looked to have extended that run to 13 games as the match entered its final stages but his former Wolves teammate Saville proved the difference, with two goals in the space of five minutes giving them victory.
The result means Reading are without a win from their past four league games and slip to 18th in the Championship table.
Millwall, meanwhile, move up to 12th by virtue of their dramatic late victory.
Millwall manager Neil Harris:
"Just when you were thinking about getting more quality on the football to hurt them, we conceded a poor goal. The goals were good, but the belief is the key. At this level, against good sides, to come from a goal down is a big ask. They've built that belief during the last six weeks with their performances.
"I couldn't see Reading scoring, and we didn't particularly trouble their goalkeeper either. I'm really pleased for George. He deserved his goals.
"We're still in that transition period [from League One to Championship]. But beating Norwich, beating Leeds, beating Reading, three big clubs at this level, shows we so far well and truly deserve to be here."
Reading boss Jaap Stam:
"Cruel game. It's very disappointing. You're hoping to maintain 1-0 and that they're going to play even more direct, if it's possible.
"Last season we sometimes had that bit of extra luck maybe more than we have now. Most of the time if that ball falls in the box it works against us. But you need to make your own luck.
"Sometimes certain teams start very well in the beginning of the season and then towards the end they go down. Lets hope for us we're starting slow and within a couple of weeks can start winning games again and have a good run towards the end of the season."
- 14WallaceBooked at 87minsSubstituted forCooperat 89'minutes
- 10OnyedinmaSubstituted forFergusonat 84'minutes
- 4van den Berg
- 24BlackettSubstituted forClementat 87'minutes
- 12McClearySubstituted forBödvarssonat 80'minutes
- Andy Madley
- Shots on Target
Second Half ends, Millwall 2, Reading 1.
Attempt saved. Paul McShane (Reading) left footed shot from the left side of the six yard box is saved in the bottom left corner. Assisted by Jón Dadi Bödvarsson.
Attempt blocked. Paul McShane (Reading) right footed shot from the centre of the box is blocked.
Attempt blocked. Paul McShane (Reading) right footed shot from the centre of the box is blocked. Assisted by Jón Dadi Bödvarsson.
Roy Beerens (Reading) wins a free kick on the left wing.
Foul by Conor McLaughlin (Millwall).
Liam Moore (Reading) wins a free kick in the defensive half.
Foul by George Saville (Millwall).
Offside, Reading. Paul McShane tries a through ball, but Jón Dadi Bödvarsson is caught offside.
Substitution, Millwall. Jake Cooper replaces Jed Wallace.
Substitution, Reading. Pelle Clement replaces Tyler Blackett.
Jed Wallace (Millwall) is shown the yellow card.
Jed Wallace (Millwall) has gone down, but that's a dive.
Goal! Millwall 2, Reading 1. George Saville (Millwall) left footed shot from outside the box to the bottom left corner.
Substitution, Millwall. Shane Ferguson replaces Fred Onyedinma.
Joey van den Berg (Reading) wins a free kick in the attacking half.
Foul by Jed Wallace (Millwall).
Attempt missed. Chris Gunter (Reading) left footed shot from the centre of the box misses to the left.
Substitution, Reading. Jón Dadi Bödvarsson replaces Garath McCleary.
Goal! Millwall 1, Reading 1. George Saville (Millwall) header from the centre of the box to the top left corner. Assisted by Shaun Williams with a cross following a corner.
Corner, Millwall. Conceded by David Edwards.
Paul McShane (Reading) wins a free kick in the defensive half.
Foul by Steve Morison (Millwall).
Offside, Reading. Vito Mannone tries a through ball, but Garath McCleary is caught offside.
Sone Aluko (Reading) wins a free kick in the defensive half.
Foul by Aiden O'Brien (Millwall).
Foul by David Edwards (Reading).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Joey van den Berg (Reading) wins a free kick in the defensive half.
Foul by George Saville (Millwall).
Goal! Millwall 0, Reading 1. David Edwards (Reading) header from very close range to the centre of the goal. Assisted by Sone Aluko with a cross following a corner.
Corner, Reading. Conceded by George Saville.
David Edwards (Reading) wins a free kick on the right wing.
Foul by James Meredith (Millwall).
Corner, Reading. Conceded by Conor McLaughlin.
Foul by Tiago Ilori (Reading).
Steve Morison (Millwall) wins a free kick in the defensive half.
Offside, Millwall. James Meredith tries a through ball, but Steve Morison is caught offside.
Foul by Joey van den Berg (Reading).