Millwall climbed back up the Championship table with a hard-fought win over Bristol City.
The result ended a run of three games without a victory and moved the Lions to within a place of the play-offs.
Dany N'Guessan gave Millwall a first-half lead, with Jon Stead levelling the game after the break.
Adam Smith's fierce volley, his first goal for the club since arriving on loan from Tottenham, restored Millwall's lead 15 minutes from time.
Kenny Jackett's side are only outside the top six on goal difference, while City only have Barnsley between themselves and the foot of the table.
Darius Henderson headed wide inside the first minute of the match, while Liam Trotter forced City goalkeeper Tom Heaton into making a save as the hosts started well.
Not so happy New Year
This was the first time Bristol City have tasted defeat in the first game of the calendar year since 2003.
N'Guessan drilled the ball past Heaton on 19 minutes to give Milwall a deserved lead, and the home side dominated until the break with Mark Beevers going close with a header.
City increased their tempo after half-time and began to threaten the Millwall goal, with keeper David Forde pushing a Neil Danns shot around his post two minutes after the restart.
Substitute Sam Baldock forced Forde into a fine save from 25 yards before the visitors drew level after 63 minutes, the unmarked Stead touching in Albert Adomah's long ball from in front of goal.
The equaliser pressed Millwall into action, and Smith had already gone close with one chance when he latched onto a knockdown from James Henry's free kick to volley the ball beyond Heaton for the winner.
Millwall manager Kenny Jackett: "It's great to get a win after two losses, I'm very, very pleased with that.
"Their keeper was far busier than ours and kept them in it with some excellent saves and we're very pleased with the victory.
"I am very pleased for Adam Smith because throughout his Millwall career he has looked like breaking through from the back in either setting up or scoring a goal."
Bristol City manager Derek McInnes: "We didn't deal with the free kick and it's a goal we've lost far too often - it was far too easy to score for them. But we put the game to chance with an inept first half performance. That was where we lost it.
"The second half performance was so much better, and even then after the equaliser we looked like we should go on to win it.
"At the very least we should take a draw, so it's very frustrating to come away with nothing."
Sorry, we were unable to load match stats, please try again.