Millwall are now undefeated in their last four games after clinching a late 2-1 win against Reading at the Den.

Neither side created many chances, however the visitors drew first blood when Wales international David Edwards headed in a corner on 73 minutes.

The Lions were frustrated by the goal they just conceded, and responded in the same fashion when George Saville’s looping header went in from a Shaun Williams delivery seven minutes later.

Both sides forced the initiative, but it was when Saville was teed up on the edge of the box that he rifled home the winner, giving Harris’ side all three points.

Here are five things we learned …

Millwall were dominant, but again lacked the clinical touch

Neil Harris has been forced into deploying Fred Onyedinma as a supporting striker to Steve Morison while Lee Gregory serves his suspension and Tom Elliott recovers from injury.

With that, the Lions have lost a clinical touch to help put away their chances in games they are the more dominant team in.

While the home side chased and harried Reading’s defence, they could not reward themselves for their efforts by testing goalkeeper Vito Mannone in goal.

Neither team dominated in chances created, but the ones that did come Millwall’s way were very good. Particularly Onyedinma missing Jed Wallace’s driven cross at the near post.

No one dropped in performance when Reading scored

As Edwards’ goal went in supporters were stunned and frustrated with equal measure, and with good reason since Millwall were the more dominant and proactive side.

So it was a testament to their performance when the team worked hard to fashion an equaliser and had their reward sooner than later, only to then snatch it all late on.

There were some standout performances, but overall the team looked better as they became more desperate to not let the game be lost to a poorly conceded goal.

It’s even sweeter given how good Reading are despite recent showings.

Shape, structure and concentration continue to be excellent

Millwall boss Neil Harris demands of his side to harass the opposition into poor decisions, and then punish their mistakes on the counter-attack.

During the match, there were significant spells where Reading struggled to get going and did not register their first attempt until half hour mark.

That was a sign of how well-drilled the Lions are under their manager and still sets the benchmark for any incoming player to meet.

At times, they did lose their shape and subjected themselves to unfortunate errors, but they made up for it several times.

Bench players might be concerned about their first-team chances this season

Shane Ferguson, Ryan Tunnicliffe and Jake Cooper were all among the substitutes’ in the 2-1 win last night, with two of the three entering in the last 10 minutes.

Although their roles at other clubs in the Sky Bet Championship would vary, some might say at least two of them could be first-team regulars with enough time.

That said, Harris’ loyalty to his starting 11 that often remains unchanged apart from the odd suspension or injury means that others must bide their time.

Many will understand that this is the reality in professional competition, but you wonder how they will respond to force themselves into the team with those ahead of them performing so well.

If these two chances happen for Millwall then may have had more goals

The first scenario is when Jed Wallace beats his marker into the box and drives a low cross into Onyedinma, who then – somehow – misses the ball entirely.

The second is when Wallace is in acres of space down the left flank and could be released by Shaun Williams with a lofted ball, but the central midfielder loses possession.

Mistakes happen all the time in football, but in these particular instances it is plausible to suggest that the Lions could have broken away sooner had they executed better.

Neither Williams nor Saville are nimble and ball-dominant playmakers, but that sort of influence could easily be a key addition.