Scott McDonald was the scourge of Charlton once more as Millwall sealed a derby win at The Valley.
Charlton’s 17-year wait for a win in this fixture was extended after a deflected shot from the Australian eight minutes before the break, his third goal in as many matches against the Addicks.
He struck home and away for Middlesbrough last season and cashed in with a shot that deflected past Ben Hamer via the heel of Dorian Dervite.
That proved the decisive moment on a derby that failed to hit the heights but it will not matter a jot to Lions boss Steve Lomas whose side have won twice in a week and now sit above their near neighbours in the table.
Worryingly for Chris Powell, his side failed to seriously test David Forde in front of the watching Sky television cameras.
Scott Malone ought to have sealed the win late on when he steered a great opportunity wide on the break – and sub Cameron Stewart saw his low drive saved by David Forde in stoppage time as the improving visitors held firm.
In a first half that veered from the frantic to the flat, the visitors claimed a crucial advantage eight minutes before the break.
And Charlton’s bright start faded as the half continued with the Lions positivity rewarded, albeit via a slice of luck.
Johnnie Jackson registered Charlton’s only shot of the half when his curler flew over the bar, and Millwall were far more fruitful in their efforts, although Ben Hamer was scarcely fully-extended in a half that lacked a real derby punch.
He was behind what proved to be the opening goal too, before a cruel deflection, and suddenly the visitors were up and running.
It was a goal stemming from sloppy play from the hosts with Millwall capitalising on a turnover to break down the middle and McDonald eventually jinked inside and took aim with a shot that beat Hamer via a deflection off Dervite.
The lead was a worthy one, and Millwall took that into the break.
Stephens shot over early in the second period and Martyn Woolford saw one shot met with a telling block from Dervite before skewing a presentable opportunity wide on the hour.
The introduction of Cameron Stewart and Callum Harriott and a change of formation was designed to spark the hosts for the closing 20 minutes.
But despite some neat approach play there was still a distinct lack of clear chances with David Forde enjoying a relatively routine afternoon.
Church could only place one decent opening straight at him after a great ball from sub Marvin Sordell and on a quick Millwall break left-back Scott Malone steered a great chance to wrap up the points wide.
Time was against the Addicks, however, and Millwall held firm to assume bragging rights once more.
The big team news saw a first league start for young frontman Joe Pigott.
He got the nod over Marvin Sordell with Yann Kermorgant still sidelined with an ankle injury.
That was the only change from the midweek 2-1 defeat at Huddersfield, a night in which the Lions picked up their first win of the season.
So Hamer was again between the posts and the three central defenders were Michael Morrison, Dervite and Richard Wood.
Lawrie Wilson and Rhoys Wiggins were the wing-backs either side of a midfield trip of skipper Jackson, Stephens and Pritchard.
Simon Church was joined up front by Pigott, making his full Championship bow.
Sordell dropped to the bench where he was joined by Ben Alnwick, Cedric Evina, Jordan Cousins, Mark Gower, Callum Harriott and Stewart, the latter having opened his Charlton account with a screamer in midweek.
There were familiar faces in the away line-up in the shape of midfielder Nicky Bailey and striker Martyn Waghorn.
A former skipper and loan striker, himself on loan at The Den from Leicester City, were in an unchanged line-up that included the highly-rated Liam Trotter.
Jermaine Easter, who netted at The Valley in Millwall’s 2-0 win last season was on the bench together with Steve Morison, who during his first spell for the Lions netted twice – and put through his own net – in a thrilling 4-4 draw a few years back.
On Rob and Jimmy’s Day, there was a poignant pre-game tribute to Rob Knox and Jimmy Mizen, two fans of the respective clubs whose lives were ended tragically early in street violence attacks.
The families of both placed a bouquet in the centre circle and, after a quiet moment, two supporters from each placed the flowers behind the goals before taking their seat in the stands.
The atmosphere was electric as the game kicked off with Bailey’s off target sighter roundly jeered by the home fans.
Current captain Jackson jinked inside and curled narrowly off target for the home side on six minutes with Mark Beevers getting in a critical header from a Wiggins centre with Pigott primed behind him.
Scott Malone fired over after advancing forward from left-back and Hamer was always behind a firm shot from Waghorn as the clock reached 12
The first booking when the way of Waghorn five minutes later after he caught Pritchard late and after the game started to settle down, another low effort from Bailey was routinely claimed by Hamer.
Martyn Woolford and Scott McDonald were off target from range with clear chances very much at a premium.
But the dynamic of the game changed markedly as Millwall snatched the lead seven minutes before the break.
After Pritchard’s loose pass in midfield the visitors broke quickly and decisively – although they had a touch of good fortune along the way.
McDonald eventually collected the ball and wriggled away from the backtracking Pritchard, and although Hamer had the Australian’s shot covered he could do nothing as it took a massive deflection off Dervite and nestled in the back of the net.
It was a hammer blow for the hosts, and you got the feeling it would take a goal of that nature to finally open up proceedings.
Jackson surged into the box soon afterwards but couldn’t pick out an unmarked Church around eight yards out and penalty claims for a bustling challenge by Jimmy Adbou on Jackson fell on deaf ears.
The half-time whistle drew frustrated boos from the home fans following an off-colour opening 45 from their heroes.
There were no changes at the break and less than 30 seconds after the resumption Stephens collected a cross from the right and drove high over the bar.
McDonald picked out Woolford eight minutes in with Dervite getting in a crucial block and Powell made a change shortly before the hour as Wood made way for Stewart.
The newcomer slotted in on the left as the Addicks reverted to a 4-4-2 and deflected looper from Pritchard was claimed to his right by Forde.
Morison replaced McDonald soon after with Woolford snatching at a great opportunity for the visitors on the hour, his shot screwing wide.
Hamer got down well to turn away Trotter’s shot on the run while the tricky Stewart was certainly enjoying a favourable impact for the hosts, cutting back and sending in a delicious cross midway through the half which was diverted behind for a corner.
Charlton were certainly starting to ask questions as the corner started stacking up and a third ex-Addick, Lee Martin, came on for Millwall for Waghorn 20 minutes from time.
Sordell and Harriott replaced Pigott and Pritchard as Powell rolled the dice a final time and Sordell’s fine pass sliced open the Lions backline 14 minutes from time only for Church to shoot tamely at Forde with Stephens and Harriott well placed in the middle.
Jackson was belatedly booked after play continued following his attempt to fell Woolford and Richard Chaplow came on for Millwall before the corner that followed.
From a rapid raid from that flag-kick Harriott took the ball deep into Lions territory but couldn’t find a teammate as Stewart stood all alone on the left.
Despite the hosts holding the upper hand possession wise, the Lions held firm, and after a quick break on the left the ball was cut back to left-back Scott Malone who shot wide when he ought to have put the result to bed.
Still with a glimmer of hope, Charlton pressed and Sordell could not connect with a deflected cross from Church.
A curling Harriott cross was too high for Stewart on the far side and there was four added minutes to offer some kind of hope for the hosts.
And in the final minute Stewart wriggled into space but his low shot was claimed by Forde and the boos that greeted the final whistle summed up the mood in SE7.
Charlton: Hamer; Wilson, Morrison, Dervite, Wood (Stewart 57), Wiggins; Stephens, Pritchard (Harriott 72), Jackson; Church, Pigott (Sordell 72).
Subs (not used): Alnwick, Evina, Cousins, Gower.
Booked: Jackson 79 (foul on Woolford)
Millwall: Forde; Dunne, Robinson, Beevers, Malone, Abdou, Trotter (Chaplow 79), Bailey; Waghorn (Martin 70), Woolford, McDonald (Morison 59).
Subs (not used): Bywater, Osborne, Connolly, Easter.
Goal: McDonald 38
Booked: Waghorn 17 (foul on Pritchard)
Ref: A D’Urso
Att: 15,917 (2,858 Millwall)