The defender’s goal 17 minutes from time saw the Blues finish empty-handed on a day which began with them hoping to finish in the top three.
Boos were heard all around Fratton Park on the final whistle as Paul Cook’s side failed to have a shot on target across 90 minutes.
And to compound the matter, the loss saw Pompey drop to fifth in the table.
Pompey were indebted to David Forde who kept out Jordan Bowery’s header inside 60 seconds.
Then Eoin Doyle missed a great chance to open the scoring after nine minutes - heading over Enda Stevens’ powerful cross from four yards.
Gary Roberts put a free-kick just over the top from 20 yards after 15 minutes, but the impetus slowly drained out of the Blues’ play.
And they were indebted to Enda Stevens just before the break as he headed Ben Nugent’s header off the line.
Cook made a positive change after 50 minutes – sending on Conor Chaplin for Amine Linganzi.
But despite the presence of seven attacking players on the pitch, Pompey couldn’t create a chance of note.
And things got worse after 77 minutes when Ray headed past Forde from Callum Cooke’s cross.
Despite bluster a leveller never looked on the cards and, quite understandably, boos rang out as the Blues were put out of their misery on the final whistle.