Mason Bennett's 86th-minute winner helped Milwall beat Preston North End 2-1 at The Den this evening after Ched Evans and Scott Malone traded wonderstrikes. 

The decisive goal was the product of not one but two mistakes from Preston goalkeeper Daniel Iversen and means the hosts avoided an 11th draw in 17 home league games, as well as earning three points that keep their play-off hopes alive.

Ched Evans' stunning half-volley gave Alex Neil's side an early lead but Malone hammered in an equaliser before the break before Bennett found a decisive second in the 86th minute.

The big news ahead of kick-off was the return of Jake Cooper, back in the starting XI for Millwall after just three games out with a dislocated shoulder, while teenager Billy Mitchell made his first start of the season.

A quiet opening 10 minutes passed without event, both sides sizing each other up, but the game soon roared into life due to a bit of brilliance from Ched Evans.

Former Millwall loan player Jayson Molumby won the ball in midfield and fed Scott Sinclair on the right flank and with the winger's Preston teammates pouring forward to join him. His slashed ball forward was headed out by George Evans but his namesake Ched met it with a ferocious 20-yard dipping volley that nestled into the bottom corner to give the visitors a 12th-minute lead.

The Lions could and perhaps should have been level minutes later when a missed header from Liverpool loanee Sepp van den Berg handed the hosts two chances on the edge of the six-yard box – Bennett squandering the best of the two.

Millwall's next chance to equalise came 11 minutes before the break through an unlikely source. A free-kick found skipper Shaun Hutchinson at the back post but he had a lot to do and his spinning shot was well blocked.

The hosts' equaliser would come from a defender, though, with Malone grabbing his fifth of the season in the 38th minute. The left wing-back picked up the ball and drove forward before unleashing a thunderous strike past a helpless Iversen and right into the top corner from well outside the box.

Malone's fifth of the season meant scores were level at the break and that only Wallace (7) had scored more than for Millwall him this season – highlighting their lack of a consistent goalscoring number nine.

Preston were in the ascendancy in what was a slow start to the second period, with Andrew Hughes sending a half-volley sailing over the bar the only moment of note.

Rowett's side began to look threatening on the break and when Wallace was sent through into the box it looked as though they might be set to find take the lead but he was shepherded to the by-line smartly by the Preston defenders and his low cross was easily dealt with.

Five minutes later, a long-throw from Mahlon Romeo was flicked on by a leaping Cooper but Bodvarsson's subsequent effort didn't trouble Iversen – though Millwall were gathering momentum.

The Lilywhites' keeper was helpless when Bennett lifted a close-range effort onto the bar not long after. The former Derby County forward really should have done better to convert the chance that was created for him by some excellent wide play by Bodvarsson.

The hosts feel they should have had a penalty inside the last 20 minutes when Mitchell appeared to poke an effort onto the hand of a Preston defender but referee Keith Stroud waved away the appeals.

Wallace nearly found a decisive second with 15 minutes to go, he latched onto a well-weighted pass into the box but drove his low effort narrowly past the post.

Matt Smith was introduced in the last five but it was a mistake from Iversen that gave Millwall their winner. The Preston keeper's poor clearance was collected by Ryan Woods, who played a bouncing ball over the top on the half volley and Bennett beat Iversen to it due to some hesitation from the Leicester City loanee and his looping header ended up in the net.

The visitors were left rueing the absence of injured shot-stopper Declan Rudd, while play-off dreams stay alive in south London.

Full Time: Millwall 2-1 Preston