Nottingham Forest lost out away from home for just the second time this season as a Ryan Tunnicliffe goal saw Millwall win 1-0.
The early strike at The Den proved to be the winner as Forest's nine-game unbeaten run on the road came to an end in the capital in the final game of 2018.
Forest faced a quick start from the home side as Millwall looked for an early advantage. They looked to utilise set pieces as Jack Cooper headed wide of the mark on seven minutes and two minutes later they had the lead through Tunnicliffe.
A deep corner to the back post wasn't dealt with by the Forest defence and Tunnicliffe was able to acrobatically turn home the ball via the post to put Millwall in front.
After a tough opening, The Reds looked to settle into the game as Joe Lolley had two efforts in the space of three minutes which tested Jordan Archer in the Millwall goal. The first, a comfortable save following a shot from the edge of the box with the second forcing the keeper to parry Lolley's strike around the post just before the half-hour mark.
The Reds continued to probe for an equaliser as the first half drew to a close, with Jack Robinson heading straight at Archer from Lolley's cross and a fine switch of play by Michael Hefele finding Matty Cash on the left, who then cut inside his man before slicing an effort a couple of yards wide of goal.
The Reds started the second half on the front foot and were moving the ball around well as they searched for the leveller. Jack Colback hit an acrobatic effort straight at Archer on 47 following a fine passing move, Lolley fired wide of the target on 49 and Cash did the same two minutes later.
Millwall's defence was holding firm as Forest struggled to find a way through, with Lewis Grabban and Saidy Janko coming off the bench for a tactical change as The Reds went on the attack.
It was the home side, however, who came closest to finding the game's second goal as sub Steve Morison hit the post following a surging run by fellow substitute Aiden O'Brien, as Forest suffered just their second defeat on the road this season.
Forest: Pantilimon, Darikwa, Hefele, Fox (c), Robinson, Yacob (Guedioura 56'), Colback, Cash (Janko 64'), Carvalho (Grabban 65'), Lolley, Murphy
Unused subs: Steele, Watson, Osborn, Appiah
Bookings: Yacob 31', Robinson 82'
Millwall: Archer, Romeo, Hutchinson (c), Cooper, Meredith, J. Wallace (Karacan 90'), Tunnicliffe, Leonard, Ferguson, Elliott (Morison 72'), Gregory (O'Brien 57')
Unused subs: Amos, M. Wallace, Skalak, Brown
Goal: Tunnicliffe 9'
Bookings: Leonard 14', Karacan 90'
Referee: Tony Harrington
Attendance: 15,273 (2,220 away)