MILLWALL failed to win for the seventh game in a row despite a second-half rally at Deepdale before a 3-2 defeat left them in the Championship's bottom three.
Preston broke the deadlock in the 37th minute through Alan Browne and Tom Barkhuizen doubled the lead five minutes later.
Millwall defender Jake Cooper pulled a goal back after the break before both sides had a flurry of chances to add more goals.
Preston finally wrapped up the points in the 82nd minute through Andrew Hughes’ free-kick, and could have added a fourth as Ben Pearson’s fierce shot hit the crossbar.
Lee Gregory made it 3-2 in the last minute of added-time but the Lions had left it too late to rescue anything from the game.
Millwall conceded twice from Preston’s first two shots on target. Neil Harris’ side had been defending well in a solid shape just before the opener, before Browne was left free to scuff in.
For the second, Millwall were far too open to allow Barkhuizen a free run through on goal and the winger finished superbly past the exposed Jordan Archer.
Millwall were much better in the second period and again created so many goal-scoring opportunities.
The Lions rank in the top half in the Championship table for balls in the opposition box, attempts on goal and must be wondering at what point that will be reflected in results.
After signing a new long-term deal on Friday, Cooper added another goal, his fourth this season.
But it meant little, as Millwall were again left to reflect on missed chances and poor defending.
The first booking of a cold and wet Preston day arrived in the fifth minute for Mahlon Romeo, who crunched through Barkhuizen, who went on to be named man of the match.
Barkhuizen fired over the bar 13 minutes in before Ben Davies went through the back of Gregory and saw a yellow card for it.
The Lions went close to an opener in the 24th minute when Cooper just failed to get a touch to Jed Wallace’s free-kick and then Steve Morison’s hook back across goal was cleared.
Romeo was having his own personal battle with Barkhuizen and when the full-back surged up the pitch he was fouled by his opponent. Wallace again sent over a dangerous free-kick but neither Morison nor Gregory could make anything from it.
The visitors were on top at that point and a neat move that went across the pitch from Romeo to James Meredith stretched the hosts before the ball was worked inside to Wallace on the edge of the box, but he couldn’t hit the target.
Typical of the way this season has been going, it was Preston who took the lead after Millwall’s best spell. The Lilywhites were struggling to break their opponents down, before Paul Gallagher’s low pass into the box found Lukas Nmecha and he flicked it behind to Browne who drilled in a low shot at the near post.
Millwall barely had time to compose themselves when Preston were in again, Barkhuizen running on to Gallagher’s pass and giving Archer little chance with a clinical finish into the far corner.
Half-time: Preston 2-0 Millwall
Harris withdrew Meredith at half-time and introduced Shane Ferguson at left-back.
Preston wanted a penalty when the ball appeared to hit Shaun Hutchinson’s hand in the box. Instead it was a corner as Gallagher worked his way into a shooting position and drew a brilliant save from Archer who prevented the ball ending up in the top corner.
Morison had a difficult chance to pull a goal back eight minutes into the second period but couldn’t keep his effort down in a crowded box.
The Lions carved out a more clear-cut chance when Ryan Tunnicliffe’s pass inside found Wallace and Declan Rudd was forced to make a low save before the winger saw another shot blocked.
There were real signs that Millwall could get back into it. Rudd saved from Aiden O’Brien and from Ferguson’s corner Cooper’s header at the back post had just crossed the line before Preston desperately tried to clear.
Chances for both sides arrived in quick succession as Gregory took advantage of some hesitancy in the Preston defence but after rounding Rudd he couldn’t turn the ball in from a difficult angle on his left foot.
Archer saved again from Barkhuizen and then from a corner after the goalkeeper had tried to punch clear, Ryan Leonard was on the line to stop the ball going in.
The away side had a brilliant chance to equalise when Wallace countered at pace. He had three options and chose to slip O’Brien in on the left side of box and Paul Huntington just managed to slide in and block as the Lions man shot.
Tunnicliffe was next to see a low shot blocked and then Rudd clawed Ferguson’s corner away from under his bar, but the referee had seen a foul by Cooper.
Cooper’s day, and his team-mates’, ended in frustration as the defender was booked for a foul on Barkhuizen and Hughes’ shot seemed to deceive Archer who was behind it but the ball dropped just over the line.
Gregory got his ninth of the season but it was Preston who almost added a fourth, Hutchinson producing an excellent block to deny Nmecha.
Image: Millwall FC