MATT Smith headed home a dramatic injury-time winner as Millwall defeated their south-east London rivals Charlton 2-1 at The Den on Saturday afternoon.
Smith – who had come on in the 87th minute – headed in Jed Wallace's corner to extend the Lions' unbeaten run over their neighbours to 11 games since 1996.
Millwall got the perfect start as Shaun Hutchinson nodded in Shaun Williams' free-kick in the sixth minute following Jason Pearce's foul on Jon Dadi Bodvarsson.
Charlton grew into the game and dominated as the first half went on. They went close to a leveller in the 38th minute when Bart Bialkowski got down low to his right to save Josh Cullen's shot, the ball bouncing up off the crossbar as the away fans claimed it had crossed the line.
Bialkowski then pulled off a sensational save in first-half injury-time to tip Macauley Bonne's rasping volley from an angle 10 yards out over the bar.
Bialkowski produced another excellent save to tip Darren Pratley's close-range effort over the bar from Adam Matthews' low cross. But the Lions' goal didn't survive for long as they failed to clear the corner and Jonathan Leko half-volleyed home in the 51st minute.
Dillon Phillips then dived to his left to keep out Ben Thompson's effort in the 60th minute.
The game appeared to be heading for a draw, before Smith scored his fourth goal of the season.
Twenty-three years and counting
Don't Look Back In Anger by Oasis was No.1 in the charts, Diana and Charles were divorcing and the country was getting ready to host Euro 96 the last time Charlton defeated Millwall.
The Lions started at supersonic speed and even before they went ahead they could have had a penalty when it appeared winger Wallace's shot from 10 yards had struck Pearce on the arm.
Hutchinson headed home Williams' precise delivery for his second goal of the season, but then little by little Charlton took control.
Lee Bowyer's masterplan involved passing it out from the back and patiently looking for openings, with their wing-backs Adam Matthews and Ben Purrington pushing high up the pitch.
The Lions' Wallace was almost in a free role in the opening period, but stuck more rigidly to his position on the right of midfield after the break to try to give Millwall a better defensive structure.
But you sensed Charlton's equaliser was overdue and there was little denying they deserved it after some electric build-up play.
It looked like if there was going to be a winner at that point it would be Charlton ending a run that seems to be going on forever.
But as tends to happen in derbies between sides that aren't exactly half the world away from each other, it became bitty and scrappy.
There were half-chances. Tom Bradshaw had a difficult header from 10 yards but couldn't generate the required power or direction to beat Phillips.
Millwall largely succeeded in playing in Charlton's territory in the last 20 minutes but were struggling to create anything clear-cut. Gary Rowett made attacking changes, sending on Smith and Aiden O'Brien.
There was one more chance. In added-time, Wallace hit a corner to the back post, and Smith climbed above Naby Sarr to power a header back across Phillips into the far corner to send the home fans into raptures.
Some might say a draw would have been a fairer result, but Smith became Millwall's rock 'n' roll star.
Lions have keeper to thank for preserving first-half lead
Bialkowski was fortunate to see the ball bounce off the woodwork after Cullen's effort had skipped off the wet turf.
Charlton were the better side for much of the first half, moving the ball well and pressing the hosts back.
Bonne had nodded wide of the near post earlier before he surely thought his fierce volley was bound for the roof of the net in added-time. But Bialkowski reacted with lightning quickness to tip the ball over the bar.
He then denied Pratley before Leko finally beat him. Millwall need to find some defensive resilience, as it's now just one clean sheet in their last 13 league games.
But that will not bother them a jot on another evening when the local bragging rights stay in SE16.
Rowett made one change to the team that lost 2-1 at Reading, with Bodvarsson replacing Shane Ferguson and Thompson starting on the left of midfield.
Jiri Skalak was on the bench in place of the injured Jason McCarthy.
Millwall: Bialkowski: Romeo, Hutchinson, Cooper, M Wallace; J Wallace, Molumby, Williams, Thompson (O'Brien, 87); Bradshaw (Smith, 87), Bodvarsson (Mahoney, 78).
Subs: Steele, Ferguson, Pearce, Skalak.
Image: Millwall FC