Portsmouth substitute Yang Min-hyeok scored a dramatic stoppage-time winner to beat Charlton and take Pompey out of the Championship relegation places.
Pompey took the lead after 69 minutes through Conor Shaughnessy but Charlton equalised in the sixth minute of time added on through Harvey Knibbs.
However, as the stoppage-time clock moved on to eight, Yang shot right footed from the centre of the box into the bottom left corner to win it.
The victory was Portsmouth’s sixth league win of the season, and extended their unbeaten run to four matches.
The loss is Charlton’s seventh defeat in nine matches and means Nathan Jones’ side slip to 20th, just two points and one place above Portsmouth.
The home side failed to register a single shot on target in a poor quality first half from both teams.
Wild and wide attempts from both Terry Devlin and Makenzie Kirk summed up their lack of threat on goal.
Charlton did manage to test Pompey keeper Nicolas Schmid with a couple of shots from Charlie Kelman.
Schmid was then forced into a brilliant save in the top left hand corner from Charlton’s Reece Burke as the London side started the second period strongly.
Portsmouth went close with a shot from Devlin saved by Thomas Kaminski, and full-back Zak Swanson shot just over the bar.
Then came the key triple change on 64 minutes from Pompey manager John Mousinho, including Shaughnessy for his first appearance since a hamstring injury in September. He headed home from close range from an Adrian Segecic cross.
Charlton had chances to equalise with Joe Rankin-Costello and Tyreece Campbell both shooting wide, before Jones made a quadruple change of his own.
It paid dividends in stoppage time when a Charlton corner was nodded on by Miles Leaburn, finding the head of sub Knibbs who finished into the top left corner.
Despite the clock ticking over into the 98th minute, referee Paul Tierney allowed the home side to take the kick-off. The ball was played into the Charlton box, and sub Yang netted the winner.
Portsmouth climb up to 21st, three points clear of the relegation places before a trip to Bristol City on New Year’s Day. Charlton have now won only two of their 13 away games this season, and host leaders Coventry City on 1 January.