Here's how The Lancashire Telegraph scored the players' performances, with a six representing par for the course.

Leopold Wahlstedt - 5

Didn't have a lot to do but perhaps will feel he could've done better for the goal. Hit powerfully by Obafemi but down the middle.

Callum Brittain - 6

Presumably went off at half-time due to injury. Got into some decent positions in the first half with the wide areas a decent avenue for attack.

Dom Hyam - 6

All of the back three saw a lot of the ball with Millwall sat deep. Was involved in the tangle for the Obafemi goal.

Kyle McFadzean - 6

Won his headers and had a relatively comfortable night.

Scott Wharton - 7

The most proactive of the defenders with the ball, happy to carry it forward to try and create overloads.

Harry Pickering - 6

Solid on both flank but couldn't provide a spark in the final third.

John Buckley - 6

Some good bits and other moments where you wanted him to speed the tempo up. Has been a net positive since coming back into the team.

Jake Garrett - 6

Added more bite in the midfield but couldn't help find a breakthrough. 

Tyrhys Dolan - 5

Not his brightest game again a very rigid Millwall back line. Wasn't really in the match and was taken off on the hour.

Sam Szmodics - 7

Where would Rovers be without him? Emphatic strike to level the game with a first-time finish.

Sam Gallagher - 6

Worked hard down the middle but the ball wouldn't break for him.

Substitutes:

Ben Chrisene (Brittain, 45')

On at left-wing-back and got into the final third a few times

Yasin Ayari (Garrett, 62') - 6

Didn't really see much of the ball or get too involved. Shot from range was a decent effort.

Arnor Sigurdsson (Dolan, 62') -7

Set up the equaliser after latching on to a loose pass.

Dilan Markanday (Gallagher, 83') - N/A

Came on as a late change but couldn't change the scoreline.

Unused substitutes: Michalski, Koumetio, O'Riordan, Moran, Telalovic.

Referee: Jeremy Simpson

Attendance: 11,711