Jamal Lowe was on target as Pompey battled from behind to secure a hard-fought behind at promotion rivals Sunderland.
But the result means that their fate is now out of their own hands, as second-placed Barnsley beat Blackpool.
Tom Flanagan had headed the hosts into an early lead in front of more than 41,000 spectators at the Stadium of Light.
Lowe was on hand to level midway through the first half, however, and Craig MacGillivray made several fine saves to keep the Black Cats at bay.
Kenny Jackett made two changes from the side that beat Coventry on home soil on Easter Monday.
Former Sunderland striker James Vaughan was handed his first start, while Ronan Curtis also returned, as Oli Hawkins and Gareth Evans dropped to the bench.
It was the hosts who made the brighter start and an acrobatic effort from Lewis Morgan had to be turned on to the post by MacGillivray.
But the keeper could do nothing to prevent the Black Cats from breaking the deadlock on nine minutes.
Max Power sent a free-kick into the box from wide on the right and Flanagan rose highest to head it home.
There were plenty of meaty challenges flying in during a competitive encounter, with Aiden McGeady and George Honeyman booked for the visitors.
Nathan Thompson and Ben Close were also shown yellow cards during the first half, as neither side held back.
Pompey grew into the contest as time passed, although a cross from Curtis was comfortably claimed by Jon McLaughlin.
And an equaliser came on 24 minutes, as Brett Pitman’s delivery was nodded against the bar by Lee Brown and the ball landed for LOWE to slot home.
Tempers then boiled over once more, leading to some pushing and shoving, but referee Craig Pawson soon calmed things down.
The visitors had the ball in the net again when Curtis looked to capitalise on a corner not being properly dealt with, but it was disallowed for a shove on McLaughlin.
Thompson then came to the rescue, quickly coming across to divert the ball behind after it had fallen kindly for McGeady.
And both sides had chances to take the lead during five minutes of stoppage-time, as the first half ended with a flourish.
First, Charlie Wyke met a cross from Luke O’Nien at the back post, only for MacGillivray to make a fine save from point-blank range.
A Curtis free-kick then led to a spot of pinball in the Black Cats box, but the hosts were eventually able to clear.
It was Sunderland that had the first opportunity following the restart, although MacGillivray dealt with Morgan’s effort.
But it had turned into quite a cagey contest, with neither side looking as threatening as they had before the break.
Jackett made his first switch just before the hour mark, as Vaughan – to a chorus of boos from the home fans – was replaced by Hawkins.
There were still not an abundance of clear-cut openings, but Thompson made a fine challenge to dispossess Wyke inside the box.
A second substitution then followed for the visitors, with Evans taking Curtis’ position wide on the left.
Sunderland, meanwhile, brought on former Fratton loanee Chris Maguire and his shot was deflected into MacGillivray’s arms.
Pompey were not having too much luck at the other end, with Christian Burgess unable to make a clean connection with Evans’ corner.
Power went close for the hosts on 79 minutes, however, only to see his fierce attempt kept out by another fine MacGillivray stop.
The Black Cats were starting to ramp up the pressure and Burgess made two key blocks in quick succession, before MacGillivray denied Will Grigg.
But the Blues saw out the closing stages to secure a point that could yet prove crucial in the race for promotion.
Sunderland (4-2-3-1): McLaughlin; O’Nien (Matthews 90), Ozturk, Flanagan, Oviedo; Cattermole, Power; Morgan (Grigg 69), Honeyman (c) (Maguire 60), McGeady; Wyke
Goals: Flanagan 9
Booked: McGeady, Honeyman
Subs not used: Ruiter, Leadbitter, Dunne, Gooch
Pompey (4-2-3-1): MacGillivray; Thompson, Burgess, Clarke, Brown; Naylor, Close; Lowe, Pitman (c), Curtis (Evans 66); Vaughan (Hawkins 57)
Goals: Lowe 24
Booked: Thompson, Close, Pitman
Subs not used: Bass, Walkes, Haunstrup, Morris, Solomon-Otabor
Referee: Craig Pawson
Attendance: 41,129 (3,222 Pompey fans)