Steve Morison's first goal of the season secured a nervy 1-0 victory for Millwall over Queens Park Rangers in the Sky Bet Championship on Friday night.
With 55 minutes on the clock, Morison headed Jed Wallace's cross past Alex Smithies to extend Millwall's unbeaten run at The Den to five games and end 2017 on a high.
Lions boss Neil Harris made three changes from the Boxing Day draw with League leaders Wolves, as Mahlon Romeo, Ryan Tunnicliffe and Morison returned to the side at the expense of Conor McLaughlin, Shaun Williams and Tom Elliott.
The first chance of the evening came on 6 minutes, as some neat play between Aiden O'Brien and Lee Gregory almost teed up a shot - however, the ball was cleared. O'Brien's half-chance mere seconds later was put wide, whilst Massimo Luongo shot QPR's first effort way over the crossbar.
In what was a scrappy, midfield battle, half-chances were the norm, with Jake Bidwell also finding the Cold Blow Lane end with a shot on 21 minutes.
The Lions' big moment came on 28 minutes as Morison looked to fire home a cross, but the striker slipped at the vital moment. George Saville pounced upon the rebound, but his shot was blocked. Gregory also had an attempt on the turn deflected away for a corner-kick.
Millwall began to turn the screw and could have taken the lead with 33 minutes on the clock, but Wallace found the side-netting. The winger then nearly played in Tunnicliffe, but his ball drew the midfielder too wide and the attack fizzled out.
Jordan Archer had to be called upon shortly after, as Bidwell ghosted in at the back post to plant a free header goalwards. Fortunately, the stopper was well placed to palm the attempt away.
Luke Freeman's glancing header forced an easy save from Archer as the second-half got underway, but on 55 minutes, Millwall took the lead as Morison crashed home a header from Wallace's deft cross for his first - and long-deserved - goal of the 2017/18 campaign.
There was split-second panic in the Millwall defence on 64 minutes as Archer spilled Luongo's long-range effort, but the goalkeeper was on hand to grab the rebound and prevent an equaliser.
Idrissa Sylla flashed a shot wide of the post, but The Lions attacked once more, with Wallace curling an effort into the arms of Alex Smithies.
Two minutes from time, The R's had a chance to level, but substitute Matt Smith headed wide of the post.
A nervy period of stoppage-time commenced, but The Lions held firm to claim a priceless win.
Millwall: Archer, Meredith, Hutchinson, Gregory (Onyedinma 80'), Romeo, Wallace, Tunnicliffe, Morison, O'Brien (Williams 68'), Saville, Cooper. Subs not used: Martin, Craig, Mbulu, Thompson, Twardek.
Scorer: Morison 55'
Queens Park Rangers: Smithies, Bidwell, Hall, Onuoha, Freeman, Cousins, Baptiste, Luongo, Wszolek (Smith 58'), Osayi-Samuel (Oteh 69'), Sylla (Wheeler 81'). Subs not used: Furlong, Washington, Manning, Lumley.
Referee: K. Stroud
Attendance: 16,601 (1,820)