A goal at the end of the first half and a goal at the start of the second half decided this game for Preston who stretched their unbeaten run to 18 games.
Marvin Williams was booked for Milwall after just six minutes after he was tackled by Preston central defender Youl Mawene on the edge of the penalty area and referee Mr Moss decided Williams had dived and showed him the yellow card.
Preston striker David Nugent had a 20-yard right-foot shot from the right channel which took a deflection before being saved by Lions keeper Colin Doyle, who had to dive low down to his right after 18 minutes.
Mawene was booked after 33 minutes for a foul on Williams when he was 30 yards from goal.
Preston new boy Brien Stock, making his debut on loan after a £150,000 deal had been agreed with Bournemouth, had a 15-yard right-foot volley tipped over the bar by the Millwall keeper for a left-wing corner following a Callum Davidson cross.
Tony Craig was booked for obstructing Nugent at a throw-in five minutes before half-time.
Patrick Agyemang made it 1-0 when he got his right boot to the ball to clip it over keeper Doyle from just six yards and the ball went into the bottom middle of the net after Chris Sedgwick had found Stock outside the box, who played it through to Agyemang.
Sedgwick had a 15-yard left-foot shot from the right channel saved by the keeper after 50 minutes.
Claude Davis rose high to head the ball from six yards into the bottom left-hand corner of the net from a Davidson left-foot right-wing corner making it 2-0 to Preston.
Marvin Elliott had a 25-yard right-foot shot saved by Carlo Nash and Davidson was booked for a foul on Marcus Phillips.
Millwall sub Carlos Manuel Fangueiro saw a long-range shot parried by Nash and cleared by Mawene for a corner late on.