Poor defending put the skids on Pompey’s play-off push as they went down 3-1 at Bradford.
Goals from Nathaniel Knight-Percival, sub Matty Lund and Charlie Wyke ensured Brett Pitman’s 25-yarder counted for nothing at Valley Parade.
It was a huge blow to the Blues’ bid to make the top six, against a side who’d won one of their previous 15 games.
The loss was Pompey’s first in seven after four wins and two draws.
With Charlton beating Shrewsbury, Kenny Jackett’s side drop to eighth – but are still a point off the play-offs.
The opening goal came with Bradford’s first effort as Dion Donohue was caught dallying by Alex Gilliead and forced into a conceding a corner.
That allowed Tony McMahon to deliver and Matt Kilgallon’s header was put in by Knight-Percival at the back post.
Brett Pitman’s penalty appeals were ignored as he jostled with Kilgallon after 28 minutes.
Conor Ronan’s 25-yarder after 33 minutes was a decent chance but Colin Doyle pushed the effort away.
Then Pitman hit his free-kick under the wall from 25 yards but it lacked the power to beat Doyle.
Jamal Lowe fired wide from close range just after the restart but the linesman’s flag was up.
Then Ben Close stabbed an effort past the upright from the edge of the box from Lowe’s cross from the right.
It took a moment of quality from Pitman to level after 61 minutes, as he unleashed from 25 yards and beat Doyle’s dive.
But more weak defending undid Pompey after 71 minutes as Lund bundled past Donohue and Clarke before poking his shot beyond McGee.
There was a huge nine minutes of stoppage-time at the end of the game.
And it got worse for the Blues in that time as McGee could only parry McMahon’s free-kick into the path of Wyke, who tapped in to round off a miserable night for Jackett’s men.