Goals from Oli Hawkins and Ronan Curtis gave League One leaders Portsmouth a comfortable victory over the Saddlers.
The visitors registered the game’s first attempt, Kane Wilson with a seventh-minute header from Josh Ginnelly’s far-post cross which looped onto the roof of the net.
The table-tapping hosts responded with Gareth Evans heading Ronan Curtis’ accurate cross over the bar when completely unmarked 12 yards out.
Pompey had strong penalty appeals waved away on 17 minutes as Nicky Devlin bundled over Evans, but referee Alan Young was unmoved.
Shortly after, Ben Thompson arrowed a low strike wide from the edge of the box.
Kenny Jackett’s men made the breakthrough on 25 minutes when Oli Hawkins nodded home Curtis’ wickedly-deflected cross from close range.
It was nearly 2-0 moments later, Ben Thompson with a rasping arrowed strike which whistled inches wide of the top corner.
The Saddlers went straight up the other end, Morgan Ferrier teeing up Kane Wilson to fire a deflected first-time shot just wide.
The south-coast side almost added a second on the stroke of half-time as Hawkins and Jamal Lowe combined to release Curtis, who pulled his fierce shot past the far post.
Walsall spurned a big chance shortly after the break, Russell Martin trading passes with Wilson before floating a perfectly-weighted pass over to Ginnelly but he couldn’t keep his volley down.
That miss came back to haunt the Saddlers as Pompey doubled their advantage on 49 minutes.
Portsmouth broke at pace from a Walsall corner, with Lowe’s cross eventually dropping for Curtis to swivel and fire the ball home.
It was agonisingly close to 3-0 on 56 minutes when Hawkins glanced an eight-yard header a fraction wide from Evans’ inviting cross.
Former Pompey loanee Connor Ronan went close to giving the Saddlers a lifeline, collecting fellow substitute Andy Cook’s cushioned lay-off before drilling wide of the near post.
The home side responded with a chance of their own but keeper Liam Roberts was equal to Nathan Thompson’s fierce 25-yarder.
Portsmouth (4-2-3-1): MacGillivray; Thompson, Whatmough, Clarke, Brown; Thompson, Naylor; Lowe, Evans (Close 85’), Curtis (Wheeler 74’); Hawkins.
Subs not used: McGee, Burgess, Haunstrup, Green, Pitman.
Saddlers (4-4-2): L Roberts; Devlin, Martin, Guthrie, Leahy; Wilson (Morris 88’), Kinsella, Dobson, Ginnelly (Ronan 65’); Gordon (Cook 78’), Ferrier.
Subs not used: Dunn, Fitzwater, Johnson, Osbourne.
Attendance: 16,794 (184 Saddlers supporters).