Conor Washington put the Addicks in front just after the half-hour mark and an own goal from Clark Robertson in the 64th minute doubled the visitors’ advantage.
Story of the match
Moments later, Hume turned provider as he sent a deep cross to Mahlon Romeo, but the wings back volleyed over.
Charlton had a pair of opportunities to double their lead, Alex Gilbey hitting the post from an angle and Albie Morgan sliced his snapshot wide.
With halftime fast approaching, Morgan sent a drive from distance whistling just over the crossbar.
Pompey should have been level when a free-kick routine saw Hirst nod down for Robertson, but the captain somehow shot wide.
Ryan Inniss spared the visitors’ blushes as his intervention denied Hirst, who had raced clear into the box.
The lead was doubled on 64 minutes when Matthews fed an overlapping Clare and Robertson, who was under pressure from Washington, turned the ball into his own net.
Portsmouth did halve the deficit when Jacobs unleashed a venomous shot that beat Charlton goalkeeper Craig MacGillivray.
The hosts searched for an equaliser, Nortel playing in Ronan Curtis at the 18-yard box, but he snatched his effort wide. MacGillivray then denied Louis Thompson's low volley.
Although Washington miscued a shot right at the end, it mattered little as Charlton moved up a spot to 14th in the table.
Man of the match: Conor Washington
Although his goal should have been disallowed, he was a threat throughout the match, getting himself in good positions and attacking whenever he had the chance.