Walsall suffered a fourth consecutive defeat without scoring after Gareth Evans’ strike earned play-off chasing Portsmouth victory in Dean Keates' first match in the dugout.
Full of confidence after back-to-back wins, Kenny Jackett’s Pompey enjoyed almost total dominance in the opening half an hour.
Top scorer Brett Pitman saw a scuffed eighth-minute half-volley held by keeper Liam Roberts, who then claimed Ben Close’s close-range volley from Gareth Evans’ deep right-wing cross.
Pitman then glanced a whipped Dion Donohue delivery across goal and just beyond a stretching Kal Naismith at the far post.
The visitors continued to boss proceedings, with Pitman flicking a header inches wide from Evans’ menacing cross.
Close threatened twice in quick succession, first having a deflected shot held and then steering a low shot into the side-netting from inside the box.
Walsall improved on the stroke of half-time, finally registering a shot on 40 minutes when Kieron Morris dragged a left-footed 20-yarder wide.
Portsmouth started the second half strongly, with Dion Donohue lashing a fierce volley over the bar.
Naismith was inches away from giving Pompey the lead on 53 minutes as his ferocious right-footed strike whistled millimetres wide of the top corner.
The Scottish winger tried his luck again 12 minutes later, unleashing a low 25-yard effort which had Roberts scrambling but skidded wide of the left-hand upright.
The South Coast club went mightily close shortly after as Naismith’s driven cross-shot somehow evaded a sliding Pitman.
Against the run of play, Walsall could have edged in front with 17 minutes remaining when Amadou Bakayoko got across his man to volley Luke Leahy’s fizzing cross over the bar.
Pompey hit back with Pitman seeing a fierce long-range free-kick tipped over by Roberts.
And Jackett’s men scored the goal their dominance deserved with 11 minutes left, Evans drilling an unerring low drive into the far corner from the edge of the box.
The Saddlers pressed for an equaliser in the closing stages – Bakayoko sending a speculative shot wide and Maz Kouhyar heading fellow substitute George Dobson’s corner off target – but to no avail.
Team: L Roberts, Devlin, Guthrie, Fitzwater, Leahy, Chambers, Cuvelier (Dobson 72’), Morris, Ngoy (Kouhyar 67’), Oztumer (Shaibu 83’), Bakayoko.
Subs not used: Gillespie, K Roberts, Kinsella, Flanagan.
Attendance: 5,159 (1,458 Pompey fans).