Pompey produced a flat performance at Fratton Park as they were beaten by Crewe.
It was the second time in less than a week that they spurned the opportunity to climb into the automatic promotion places.
The hosts controlled possession, but opposition keeper Ben Garratt’s clean sheet rarely looked under threat.
And Crewe made the most of a spell of second half pressure to secure all three points, courtesy of skipper George Ray’s firm header.
Paul Cook made one change from the side that drew with Morecambe earlier in the week.
It came wide on the right, where Carl Baker dropped to the bench to make way for Tuesday’s goalscorer Kal Naismith.
Crewe had a chance to break the deadlock in the opening seconds, with David Forde getting down to save Jordan Bowery’s header.
But it was the Blues who dominated the majority of the first half, without being able to carve out many clear-cut openings.
Their best opportunity came when Enda Stevens whipped in a cross from the left, but it came at Eoin Doyle quickly and he could only glance over from close range.
And the on-loan Irishman was then not quite able to get on the end of a teasing low Naismith delivery.
Gary Roberts also went close with a free-kick from 20 yards that curled narrowly over the crossbar and onto the roof of the net.
There was plenty of probing from Pompey – with Kyle Bennett looking bright – but they struggled to break through a resolute Crewe back-line.
Naismith had a couple of chances late in the half, but on both occasions missed the target after electing to shoot rather than pass.
And the visitors almost grabbed the lead against the run of play before the break when Forde failed to get enough on his punch clear.
The ball was sent back into the box and Ben Nugent’s header was flying towards the net, only for Stevens to clear from the line.
Crewe Alexandra 0
The second half was less than five minutes old when Cook made his first substitution, as Amine Linganzi made way for Conor Chaplin.
Pompey were still looking lethargic, however, as they struggled to impose themselves in the opposition half.
And it was Crewe who had a decent opportunity when Ollie Turton found himself in space on the edge of the box, only to fire over.
Cook’s second switch arrived just past the hour mark, with Baker replacing Bennett as the Blues continued to search for a source of inspiration.
But there was growing frustration both on and off the pitch, as the hosts were labouring away with little reward.
Not that there was much to worry about at the other end pitch, with Callum Cooke finding the side netting in a rare Railwaymen attack.
But that seemed to spark the visitors into life and they twice came close to breaking the deadlock.
First, following a quick break from a Pompey corner, Cooke’s cross hit Stevens and flew inches past the post.
Stevens then came to rescue from the resulting corner, as – for the second time in the game – he cleared from the line, this time to deny Billy Bingham.
It was third time lucky for Alexandra, however, as the ball was sent back into the box, where Ray rose highest to convert a thumping header.
Noel Hunt was thrown on as the hosts committed plenty of men forward in desperate search of an equaliser.
But Crewe held firm at the back, seeing out four minutes of stoppage-time to leave Fratton Park feeling deflated at the final whistle.
Pompey (4-2-3-1): Forde; Evans, Burgess, Clarke, Stevens; Linganzi (Chaplin 50), M.Doyle (c); Naismith, Roberts (Hunt 79), Bennett (Baker 63); E.Doyle
Subs not used: O’Brien, T.Davies, Rose, Lowe
Crewe (4-4-2): Garratt; Turton, Ray (c), Nugent, Bakayogo; Wintle, Jones, Bingham, Cooke (Cooper 80); Kiwomya (Ainley 90+3), Bingham
Goals: Ray 77
Subs not used: Richards, Ng, Pickering, Finney, Kirk
Referee: John Busby
Attendance: 16,810 (216 away fans)