Brett Pitman’s winner saw Pompey close in on a play-off place against Southend.
Pitman’s 12th goal of the season gave his side a 1-0 success in front of Fratton Park’s biggest crowd of the season.
Phil Brown’s side will rue Nile Ranger’s first-half stoppage-time penalty miss – given in controversial fashion.
The majority of the 18,431 in attendance were furious with the call, but were soon celebrating as Ranger blazed his effort well over the top.
Both sides had gilt-edged chances in the first 20 minutes.
First Pitman couldn’t direct his finish on target from a couple of yards after Matt Clarke’s lovely cross from the byline.
After 20 minutes Kal Naismith prodded a ball across his own box but Michael Turner somehow failed to accept the gift and fired wide.
In between, Luke McGee saved superbly at full length to keep out Theo Robinson’s curling 25 yarder.
Then came the controversy in first-half stoppage-time as referee Carl Boyeson awarded a penalty - apparently for handball against Matt Clarke.
The home crowd’s anger turned to celebration, however, as Ranger blazed his penalty over the bar.
Matty Kennedy was introduced at the break and played a key role in the opening goal in the 54th minute as he crossed for Pitman to deftly head home.
In the 58th minute, Fratton Park stood and applauded the memory of Gary Martin - the huge Pompey fan who recently lost his fight with cancer at the age of 58.
Southend fans joined the tribute in classy fashion with Martin’s family at the game following his funeral yesterday.
And Martin would have been delighted to see his side comfortably see out the game for another three points.
That means Pompey are now two points off the top six as they ended a run of five defeats on the bounce to the Shrimpers.