Amady Faye's first goal in English football was enough to give Charlton a precious victory at Portsmouth.
Faye scored his first goal since arriving in England in August 2003
Charlton looked to have blown their chance of a rare away win when Dennis Rommedahl was clean through and allowed Sol Campbell to get back and deny him.
But ex-Pompey midfielder Faye fired in off Campbell with 11 minutes left after being set up by Bryan Hughes.
Pompey could have equalised at the death but Scott Carson produced a stunning save to deny Andrew Cole.
It was Charlton's first win on their travels since they last visited Fratton Park in October 2005.
That win took them to second in the Premiership, while Pompey were left struggling at the opposite end of the table.
How things have changed as the Addicks lie second bottom and Pompey are chasing a European place.
But there looked little between the two sides for much of a poor game that rarely sparked the imagination of a passionate crowd, except when Ben Thatcher was involved.
606 DEBATE: Give your thoughts on the match
Thatcher was facing Pedro Mendes for the first time since he was knocked out by a forearm smash in August.
The two exchanged a courteous handshake before the game but the Pompey fans predictably showed little forgiveness in booing his every touch.
The goalmouth action was in short supply from both sides, with Charlton carving out the better chances.
They almost broke the deadlock with the first real threat on goal after half an hour.
Jerome Thomas' deep cross found Marcus Bent and his header was just out of Hughes' reach and agonisingly fell the wrong side of the post.
Any hope of Thatcher getting back on Portsmouth's Christmas card list probably ended when he clattered into debutant Lauren, who came off with a bloody face and in need of a new shirt and shorts.
Pompey's best chance of a first-half goal came from a succession of corners and Cole saw a header cleared off the line by pantomime villain Thatcher.
Faye had a shot well off target, demonstrating why he had not managed a goal in his previous 120 games for Pompey, Newcastle and the Addicks.
Thomas tested an outstretched David James, while Roudolphe Douala's introduction livened up Portsmouth's attack.
Kanu should have done better than to head wide when left free in the box.
Charlton's winner last time came from Rommedahl and the Dane was gifted the perfect opportunity to do it again when he was allowed to run clear on goal.
But he dithered over his shot giving Campbell the chance to get back and deny him.
However, Campbell was powerless to stop Faye from playing a one-two with Hughes and poking past James to end his goal drought on 79 minutes.
Pompey thought they had grabbed a dramatic point in the dying stages but Carson threw himself to his left to keep out Cole's header.
Portsmouth manager Harry Redknapp:
"We didn't play well, it was probably as bad as we have played all season.
"It is one of those things really. We found it difficult to create.
"We're not going to win every week. We didn't play, it was a poor performance and I was disappointed but these things happen in football.
"But we have got an easy game next week at Old Trafford!"
Charlton boss Alan Pardew:
"It was a performance that gives us really good heart. We have put ourselves in with a chance.
"We're going into the next games with our best players back and hopefully we can finish like Portsmouth did last year.
"I felt that the performance was more than I could have asked for but the quality came through as well.
"It's important that we have given ourselves belief and our fans have seen we can give a display against one of the best teams in the division."
Portsmouth: James, Johnson, Primus, Campbell, Traore, Lauren, Davis (Douala 53), Pedro Mendes, Taylor, Kanu (Mwaruwari 73), Cole.
Subs Not Used: Ashdown, Thompson, Hughes.
Charlton: Carson, Sankofa, El Karkouri, Hreidarsson, Thatcher, Rommedahl (Kishishev 82), Faye (Diawara 90), Holland, Hughes, Thomas (Hasselbaink 90), Marcus Bent.
Subs Not Used: Myhre, Ambrose.
Booked: Sankofa, Faye, Carson.
Goals: Faye 79.
Ref: M Clattenburg (Co Durham).