Pompey’s play-off hopes received a huge blow as they produced a disappointing display to lose to top six rivals Charlton at Fratton Park.
The visitors dominated the first half and took the lead through Nicky Ajose’s cool finish just before the break.
There was an improvement following the interval, though, with Brett Pitman and Connor Ronan going closest to finding the net.
Kenny Jackett made one change from the side that were beaten at Bradford earlier in the week.
Brandon Haunstrup returned at left-back, with Ronan dropping to the bench, Dion Donohue moving into midfield and Jamal Lowe playing a more advanced role just behind Pitman.
The game began at an extremely high-tempo, as both sets of fans contributed to a pulsating atmosphere in the south coast sunshine.
But there were not any scoring opportunities at either end, with the frantic pace not matched by any real quality.
It was Charlton who settled first, however, and the hosts struggled to make any inroads going forward, too often let down by errant passing.
At least there was plenty of commitment at the back, with Ben Close and Donohue making timely challenges to deny Tariqe Fosu and Josh Magennis.
Then, when a Pompey free-kick broke down, the Addicks broke quickly up field and Jake Forster-Caskey saw his drive deflected wide.
The midfielder went even closer from the resulting corner, only for a well-placed Nathan Thompson to hack the ball clear before it could find the net.
Ben Amos had not been tested between the visitors’ sticks and Lowe ensured that continued by shanking a 30-yard effort well wide.
Pitman was furious moments later when he tried to meet a Kal Naismith delivery, only to have his shirt tugged by former Blues defender Jason Pearce.
It was a clear infringement missed by referee Mark Heywood and his assistants, and the respective skippers squared up before getting a talking to by the official.
Charlton were clearly on top, though, and it was not a huge surprise when they broke the deadlock on 40 minutes.
Thompson failed to cut out Magennis’ header through to Ajose and the striker calmly slid the ball past Luke McGee.
There was almost an equaliser just before, as Matt Clarke bundled his way through a host of red-shirted bodies to meet a Gareth Evans free-kick, but Amos got down to save.
Half Time: Pompey 0 Charlton 1
Jackett made a double switch at the start of the second half, with Jack Whatmough and Thompson making way for Christian Burgess and Stuart O’Keefe.
And the hosts came close to a leveller within a few minutes, as Pitman turned another Evans free-kick narrowly over the bar.
The skipper then had a tougher chance that he was not quite able to guide on target when Naismith headed a Close set-piece into his path.
Pompey had looked much more positive since the interval and the Fratton faithful responded by turning up the volume.
The Addicks were still posing a threat themselves, however, and when a corner was only partially cleared, Ben Reeves volleyed inches past the post.
When the action switched down the other end, the visiting defence did well to prevent Naismith from converting Evans’ teasing low cross.
Jackett’s final throw of the dice arrived on 66 minutes when Haunstrup made way for Ronan, with Evans dropping deeper.
Pompey were still struggling to create many meaningful openings, though, and the visitors were looking a real threat on the break.
An opportunity did arise when Pitman hung in the air to meet Ronan’s cross, although there was not quite enough power on his header to beat Amos.
Ronan was looking lively and he took a great touch after the visitors could only half clear a corner, opening up space to try a shot that Amos kept out.
And Pitman almost levelled late on, with his bending free-kick palmed over by Amos after O’Keefe had been felled 30 yards out.
A couple of late corners gave the Blues hope of finding a late goal – with McGee going up for the second – but there was to be no late drama.
Pompey (4-4-1-1): McGee; Thompson (O’Keefe 46), Whatmough (Burgess 46), Clarke, Haunstrup (Ronan 66); Evans, Close, Donohue, Naismith; Lowe; Pitman (c)
Booked: Pitman, Evans
Subs not used: Bass, Kennedy, Chaplin, Hawkins
Charlton (4-4-2): Amos; Konsa, Bauer, Pearce (c), Page (Marshall 62); Reeves, Kashi, Forster-Caskey, Fosu (Dasilva 57); Magennis, Ajose (Kaikai 90+2)
Goals: Ajose 40
Booked: Kashi, Dasilva
Subs not used: Phillips, Lennon, Aribo, Zyro
Referee: Mark Heywood
Attendance: 19,210 (2,448 away fans)