Pompey twice let a lead slip and were forced to settle for a point against Charlton, despite a largely impressive performance at The Valley.
Ronan Curtis had given them an early advantage with an excellent strike and it was a dominant display before the break.
The hosts were better in the second period, however, and substitute Sean Clare levelled before Harness hit back for the Blues.
But with time running out, another replacement struck for the Addicks, with Josh Davison ensuring the spoils would be shared.
Danny Cowley stuck with the same side that dramatically drew with Plymouth on home soil earlier in the week.
It meant that Sean Raggett made his 100th appearance for the club, flanked by Shaun Williams and Kieron Freeman in a back three.
Former Pompey players Craig MacGillivray, Jason Pearce and Jayden Stockley all started for the hosts, while Stephen Henderson was on the bench.
The visitors came charging out of the blocks and it came as no surprise to see them break the deadlock on six minutes.
It was a fine goal from CURTIS, who collected a pass from Mahlon Romeo and sent a shot dipping over MacGillivray and underneath the crossbar.
Charlton almost hit back immediately when Elliot Lee raced onto Jonathan Leko’s pass and fired in a low effort that hit the inside of Gavin Bazunu’s leg and flew narrowly past the post.
The Blues were the team in control, though, and the home support were growing increasingly frustrated at the way their side were being cut through.
Manager Nigel Adkins was the focus of their ire, while his Southampton connections ensured the travelling fans also offered plenty of stick.
Only some fine defending from Pearce and Adam Matthews prevented Harness and Marquis respectively from testing MacGillivray.
The lead should have been doubled on 19 minutes when Harness found Marquis unmarked in the box.
He took a poor first touch, however, and despite recovering to get a shot away, could only screw the ball wide.
Pompey were showcasing some neat passing football and looking capable of adding to their slender lead.
But the Addicks finally enjoyed some joy going forward towards the end of the first half and Bazunu had to adjust his feet to deal with a swerving Leko strike.
Alex Gilbey then surged forward and swapped passes with Leko before hitting a low effort that Bazunu kept out with his leg.
The visitors had the final say before the break, though, and Marquis flicked a Ryan Tunnicliffe delivery narrowly wide.
Half Time: Charlton 0 Pompey 1
While Pompey had started the first half in impressive fashion, it was their opponents who were brighter straight after the restart.
Raggett conceded a free-kick to the right of the box and the free-kick was cut back by Lee for Clare – who had been on the pitch for a matter of seconds – to slot home the equaliser.
The Blues looked to build again, although Curtis could not repeat his earlier magic after finding space to run into and dragged a shot wide.
And the Addicks were still looking threatening at the other end, with Lee’s strike forcing Bazunu into action.
Lee Brown had tried to halt that attack with a cynical foul on Clare and referee Antony Coggins went back to book the skipper.
It was then Pompey’s turn to challenge, although Curtis’ cross was just behind Romeo, whose header lacked the power to properly trouble MacGillivray.
The action was continuing to switch from one side of the pitch to the other and a Charlton corner almost led to the visitors retaking the lead.
Curtis broke quickly up the pitch and slipped in Harness and he tried to find Marquis in the middle, but Clare slid in to make a crucial interception.
They did go back into the lead on 72 minutes, however, as Tunnicliffe’s pass was neatly flicked on by Marquis for HARNESS to confidently slide into the net.
Pompey set about trying to wrap things up and MacGillivray was called into action twice in quick succession to deal with shots from Harness and Marquis.
A change soon followed from Cowley, with Reeco Hackett-Fairchild coming on against his former club in place of Harness.
And another switch came along moments later, as George Hirst replaced the tireless Marquis up front.
But Charlton hit back in the closing stages, with two of their substitutes combining to find another equaliser.
Corey Blackett-Taylor escaped down the right and squared the ball for the onrushing Davison to slam home from close range and deny the Blues a win.
Charlton (4-1-4-1): MacGillivray; Matthews, Lavelle, Pearce (c), Souare; Watson; Leko, Arter (Clare 46), Gilbey, Lee (Blackett-Taylor 82); Stockley (Davison 82)
Goals: Clare 47, Davison 87
Booked: Souare, Clare
Subs not used: Henderson, Famewa, Dobson, Kirk
Pompey (3-4-3): Bazunu; Freeman, Raggett, Williams; Romeo, Tunnicliffe, Morrell, Brown (c); Harness (Hackett-Fairchild 78), Marquis (Hirst 82), Curtis
Goals: Curtis 6, Harness 72
Booked: Brown, Raggett
Subs not used: Bass, Downing, Thompson, Azeez, Harrison
Referee: Antony Coggins
Attendance: 16,278 (2,995 Pompey fans)