Luke Beckett made it into double figures for the season as Huddersfield Town claimed their fifth win in six matches.
The Terriers remain on course for a late play-off surge, but Millwall stay deep in relegation trouble.
Beckett kept his cool when he struck from the penalty spot in the 29th minute.
Centre-back Zak Whitbread was the villain after he pulled Beckett over just inside the box.
Whitbread, who had been warned by referee Colin Webster just a minute before, lost out to Beckett but felled him from behind.
Beckett looked to be clean through but Mr Webster decided it warranted just a yellow card.
Beckett stepped up and slotted home the spot-kick even though keeper Rhys Evans dived the right way.
Millwall's Gary Alexander had an early effort which Town keeper Matt Glennon snatched at the second attempt and then turned centre-back Nathan Clarke inside out but he lacked composure and blasted over.
Huddersfield had a couple of half-chances with Phil Jevons landing a lob on the roof of the net and Andy Holdsworth cracking a shot just wide of the far post.
The Terriers almost took the lead in the 20th minute through stand-in skipper Rob Page, but his downward header from Robbie Williams' corner was cleared off the line by Marc Laird.
After the break, Huddersfield had chances to seal victory as Holdsworth headed over and Page headed wide from another Williams corner.
Beckett almost grabbed a second but his header was tipped over by Evans.
Millwall finished the game strongly but Paul Robinson's header went wide and Ahmet Brkovic went close at the back post.