Febian Brandy scored the first and made the second as Walsall made it four wins out of five over the festive period, while inflicting hapless Portsmouth's fourth straight defeat since Christmas.
The former Manchester United youngster put the Saddlers ahead with a cool far-post finish in the six-yard box.
The tricky Brandy was then denied a second just before the break, only to be denied by goalkeeper Simon Eastwood.
But the rebound fell to Will Grigg, who bundled it home from eight yards.
There might have been more, but Grigg blazed over and substitute Darren Westcarr wasted two good openings.
But Brandy's third goal over Christmas, coupled with Grigg's eighth strike of the season, was enough to earn Walsall's best home win over the season and carry Dean Smith's Saddlers back to within seven points of the League One play-off zone.
Portsmouth remain in the relegation zone after their 13th league game without a win.
VIEWS FROM THE DRESSING ROOM
Walsall manager Dean Smith told BBC WM:
"We didn't start too well. Maybe some of the younger lads were feeling a bit nervous being in front of the TV cameras for the first time.
"They had a good early chance. That woke us up a bit and, from then on, it was a very good professional performance and a real team effort.
"Fabien Brandy was involved in both goals, Will Grigg never stopped running, Adam Chambers broke things up well and the two lads at the back were very strong."
Portsmouth caretaker manager Guy Whittingham told BBC Solent:
"Walsall have just come off the back of a long run without a run and they've now won four in five, so I'm going to have to ask Dean Smith how he did it.
"But I know what he's going to say. It's just case of keeping on doing everything right, working hard at it and hoping your luck will turn.
"Both their goals tonight came from our mistakes. But we've got a lot of young lads out there doing a lot of running, and the ball's just not running for them."
- 28 Darlow
- 04 Butler
- 14 Purkiss
- 20 Benning (J Chambers - 88' )
- 22 Downing
- 07 A Chambers
- 27 Mantom
- 09 Grigg
- 10 Paterson
- 12 Brandy (Baxendale - 74' )
- 29 Westcarr
- 01 Grof
- 02 Taundry
- 25 J Chambers
- 06 Featherstone
- 11 Hemmings
- 24 Baxendale
- 17 Bowerman
- 13 Eastwood
- 02 Dumbuya
- 18 Ertl
- 20 Michalik
- 22 Webster (Wallace - 86' )
- 06 Walker (Allan - 46' )
- 07 Williamson
- 19 Russell
- 26 Mendez-Laing (Harris - 65' )
- 09 Connolly
- 14 Benson
- 01 Smith
- 03 Harley
- 16 Gyepes
- 23 Allan
- 35 Wallace
- 21 Harris