Millwall boss Kenny Jackett celebrated five years in charge with a thumping away victory over Nottingham Forest.
Liam Trotter's fine solo effort put the Lions ahead but Billy Sharp's 12-yard strike after a slick move made it 1-1.
The visitors regained the lead when Darius Henderson headed home a James Henry cross after the interval.
Millwall wrapped up the win to extend their unbeaten run to seven games through a deflected Chris Wood strike and substitute Andy Keogh's volley.
Forest's afternoon began badly when Trotter cut in from the left, beat two defenders and curled the ball into the top corner.
Chris Taylor's 20-yard strike then forced home keeper Lee Camp into action, but Forest drew level against the run of play when Sharp finished coolly after an intricate passing move involving his strike partner Simon Cox.
Sean O'Driscoll's Forest side grew in confidence and finished the first half on top but failed to add a second goal and the visitors took control after the interval.
Wood and Henry both sent headed efforts over the bar, before Henderson nodded Millwall's second goal past Camp from close range.
And the Londoners as good as secured their first sway league victory since August when Wood scored after a swift counter-attack with a strike that took a big deflection off Danny Collins.
The Reds, who were beaten for the first time in six games, were caught out again six minutes from time when Taylor's cross was volleyed home by Keogh.
Nottingham Forest manager Sean O'Driscoll: "We started poorly, we didn't start with enough focus, they came with a gameplan and we fell into the trap.
"We committed our own downfall really. We lost our discipline and shape in the last 10 minutes because we were trying to gamble really.
"We have to stick to what we have done really well. It is difficult in this division and the only certainties are that you are going to get beaten."
Millwall assistant manager Joe Gallen: "The important thing is for us not to get carried away with the win.
"It's a massive achievement to come to a place like this, score four goals and beat Forest.
"But while our fans and everyone connected with the club can feel pretty pleased with the way things have gone today, by tomorrow it will be all over."
- 01 Camp
- 03 Harding Booked
- 05 Collins
- 18 Moloney
- 32 Ward
- 04 Gillett (McGugan - 78' )
- 08 Cohen
- 11 Reid (Blackstock - 70' )
- 28 Majewski (Guedioura - 15' )
- 19 Cox
- 24 Sharp
- 12 Darlow
- 07 Guedioura
- 10 McGugan
- 21 Coppinger
- 22 Lansbury
- 20 Tudgay
- 23 Blackstock
- 01 Forde
- 03 Shittu
- 12 Lowry
- 16 Beevers
- 25 Smith
- 06 Trotter
- 14 Henry
- 19 C Taylor
- 26 Abdou Booked
- 07 Henderson (Keogh - 81' )
- 39 Wood
- 33 M Taylor
- 21 Smith
- 27 Osborne
- 28 Malone
- 04 Wright
- 15 Feeney
- 20 Keogh
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +1:46
The ball is swung over by Chris Cohen, save by David Forde.89:00
Simon Cox produces a cross. The referee blows for offside against Dexter Blackstock. David Forde takes the free kick.87:11
Inswinging corner taken from the left by-line by Lewis McGugan, clearance by Danny Shittu.86:27
Foul by Simon Cox on Adam Smith, free kick awarded. David Forde takes the free kick.83:57
Chris Taylor provided the assist for the goal.83:57 Goal scored
Goal! - Andy Keogh - Nott'm For 1 - 4 Millwall Andy Keogh finds the back of the net with a goal from inside the six-yard box to the bottom right corner of the goal. Nottm Forest 1-4 Millwall.80:22 Substitution
Substitution Darius Henderson goes off and Andy Keogh comes on.79:14
Foul by Chris Wood on Dan Harding, free kick awarded. Indirect free kick taken by Chris Cohen.78:18
A cross is delivered by Dan Harding.77:20 Substitution
Substitution Lewis McGugan joins the action as a substitute, replacing Simon Gillett.75:54
The assist for the goal came from James Henry.75:54 Goal scored
Goal! - Chris Wood - Nott'm For 1 - 3 Millwall A goal is scored by Chris Wood from the edge of the penalty area low into the middle of the goal. Nottm Forest 1-3 Millwall.74:06
The ball is crossed by Dan Harding, save made by David Forde.72:53
Outswinging corner taken left-footed by Chris Cohen, Adam Smith makes a clearance.72:28
Dexter Blackstock fouled by Danny Shittu, the ref awards a free kick. Chris Cohen takes the free kick.70:54
Corner taken by James Henry from the left by-line to the near post, Dexter Blackstock manages to make a clearance.69:41 Substitution
Substitution Dexter Blackstock comes on in place of Andy Reid.66:54
Foul by Adlene Guedioura on Shane Lowry, free kick awarded. David Forde restarts play with the free kick.64:46
Free kick taken by Adlene Guedioura.
Booking Nadjim Abdou is cautioned by the ref for unsporting behaviour.64:40
Unfair challenge on Simon Cox by Nadjim Abdou results in a free kick.64:08
The ball is crossed by Brendan Moloney, Adam Smith manages to make a clearance.59:29
James Henry provided the assist for the goal.59:29 Goal scored
Goal! - Darius Henderson - Nott'm For 1 - 2 Millwall Darius Henderson finds the net with a headed goal from inside the six-yard box. Nottm Forest 1-2 Millwall.58:54
Unfair challenge on Chris Wood by Danny Collins results in a free kick. James Henry delivers the ball,57:48
The ball is crossed by Darius Henderson, Header from deep inside the area by James Henry goes over the bar.57:09
A cross is delivered by Billy Sharp, save by David Forde.55:20
Danny Shittu challenges Andy Reid unfairly and gives away a free kick. Andy Reid shoots direct from the free kick, save by David Forde.54:32
Brendan Moloney takes a shot. Blocked by Mark Beevers. Chris Cohen takes a inswinging corner from the right by-line played to the near post, Mark Beevers manages to make a clearance.52:26
Headed effort from inside the area by Chris Wood misses to the left of the target.51:37
Outswinging corner taken by James Henry from the right by-line, save by Lee Camp.50:23
Shane Lowry gives away a free kick for an unfair challenge on Chris Cohen. Chris Cohen takes the indirect free kick.49:23
Foul by Simon Cox on Danny Shittu, free kick awarded. Indirect free kick taken by David Forde.48:50
James Henry delivers the ball.45:01
The referee gets the second half started.45:00 +3:09 Half time
Half Time The ref blows to signal half-time.45:00 +2:46
Adlene Guedioura takes a shot.45:00 +2:09
The offside flag is raised against Darius Henderson. Danny Collins takes the free kick.45:00 +1:19
Close range header by Darius Henderson goes over the bar.42:00
Mark Beevers gives away a free kick for an unfair challenge on Billy Sharp. The free kick is delivered left-footed by Andy Reid from right wing, save by David Forde.41:19
The offside flag is raised against Darius Henderson. Lee Camp takes the indirect free kick.39:47
Chris Cohen fouled by Darius Henderson, the ref awards a free kick. Indirect free kick taken by Lee Camp.37:56
Corner taken by James Henry from the left by-line, Billy Sharp makes a clearance.37:15
Foul by Chris Cohen on Liam Trotter, free kick awarded. James Henry restarts play with the free kick.36:44
Adlene Guedioura delivers the ball, Mark Beevers manages to make a clearance.34:49
Foul by Adlene Guedioura on Shane Lowry, free kick awarded. Shane Lowry restarts play with the free kick.34:15
Darius Henderson is ruled offside. Indirect free kick taken by Lee Camp.33:36
Free kick awarded for an unfair challenge on James Henry by Simon Cox. Nadjim Abdou takes the indirect free kick.32:27
Free kick awarded for a foul by Chris Cohen on Mark Beevers. David Forde restarts play with the free kick.31:53
Darius Henderson is caught offside. Elliott Ward restarts play with the free kick.31:19
Andy Reid takes a shot. Save by David Forde.29:33
The ball is swung over by Andy Reid, clearance made by Danny Shittu.26:35
Free kick awarded for a foul by Darius Henderson on Brendan Moloney. Lee Camp takes the indirect free kick.26:11
The referee blows for offside. David Forde takes the indirect free kick.25:37
Foul by Shane Lowry on Chris Cohen, free kick awarded. Indirect free kick taken by Adlene Guedioura.23:55
Inswinging corner taken left-footed by Chris Cohen played to the near post, clearance made by Mark Beevers.21:24
The assist for the goal came from Simon Cox.21:24 Goal scored
Goal! - Billy Sharp - Nott'm For 1 - 1 Millwall Billy Sharp gets on the score sheet with a goal from inside the box to the bottom right corner of the goal. Nottm Forest 1-1 Millwall.19:53
Chris Taylor takes a shot. Lee Camp makes a save.19:06
James Henry has an effort at goal from outside the penalty box missing to the wide right of the target.17:10
Darius Henderson produces a cross, clearance by Dan Harding.15:17
Darius Henderson is flagged offside by the assistant referee. Lee Camp restarts play with the free kick.14:40
James Henry takes the free kick.14:40 Substitution
Substitution Adlene Guedioura on for Radoslaw Majewski.14:40
Unfair challenge on Darius Henderson by Elliott Ward results in a free kick.14:14
Andy Reid takes a shot. Save made by David Forde.13:12
The ball is sent over by Chris Wood, save by Lee Camp.11:19
Darius Henderson is caught offside. Elliott Ward takes the free kick.4:53
Shot from just outside the penalty box by Radoslaw Majewski misses to the left of the target.2:42 Goal scored
Goal! - Liam Trotter - Nott'm For 0 - 1 Millwall A goal is scored by Liam Trotter from just inside the penalty area to the top right corner of the goal. Nottm Forest 0-1 Millwall.2:03 Booking
Booking Dan Harding booked.1:34
Dan Harding challenges Adam Smith unfairly and gives away a free kick. Indirect free kick taken by Adam Smith.0:18
Chris Wood takes a shot. Save by Lee Camp.0:00
The game gets underway.
Live data and text provided by our data suppliers