Scott Laird’s first-half strike earned the Saddlers a richly-deserved Boxing Day win at Port Vale.
The only goal came on 27 minutes, when the Scunthorpe loanee coolly slotted past Valiants stopper Jak Alnwick at his near post.
Joe Edwards, Flo Cuvelier and Amadou Bakayoko also had chances in a one-sided first-half, and although Vale improved after the break, they rarely troubled Neil Etheridge in the Saddlers goal.
The result sees Jon Whitney's men climb a place to 15th in the League One table.
Walsall – 5-0 winners at Vale Park on the final day of last season – made the brighter start, creating a fine scoring chance inside four minutes.
Simeon Jackson regained possession out wide and crossed for Edwards, but his half-volley was straight at Alnwick.
The Saddlers threatened again on 17 minutes, as Bakayoko latched onto Cuvelier’s through ball but his effort from a tight angle was blocked by the onrushing Alnwick.
The visitors were on top and they deservedly took the lead just before the half-hour mark.
After a Walsall corner wasn’t fully cleared, Isaiah Osbourne crossed back in for the unmarked Laird, who took the ball down on his chest before coolly slotting past Alnwick at his near post.
It could have been 2-0 moments later, as Jackson attempted to lob Alnwick but his effort drifted narrowly over the bar.
The visitors fashioned another good opportunity five minutes from half-time, Laird delivering a deep left-wing cross for Cuvelier but he volleyed wide of the far post.
Half-time: Port Vale 0-1 Walsall
The Belgian midfielder went close again shortly after the interval, unleashing a rasping right-footed drive from 20 yards which Alnwick could only beat away.
Vale finally began to exert some pressure around the hour mark, having two penalty appeals waved away in quick succession.
Nathan Smith’s shot was then blocked by Matt Preston from point-blank range as Bruno Ribeiro’s side, much improved in the second half, pressed for an equaliser.
The Saddlers, though, were defending stoutly while still posing an occasional counter-attacking threat.
On 73 minutes, Erhun Oztumer teed up captain Adam Chambers to fire a powerful first-time drive over the bar from 25 yards.
Visiting keeper Etheridge was finally called upon with 14 minutes remaining, diving low to his right to keep out Rigino Cicilia’s tame shot on the turn.
Walsall looked to put the game to bed, with Oztumer firing a dipping 25-yarder straight at Alnwick and Jackson blazing wildly wide from inside the area.
The Valiants increased the pressure in the closing stages, with Laird making a crucial, goal-saving tackle to deny Alex Jones.
Deep in added time, Ryan Taylor’s 30-yard free-kick was tipped over one-handed by Etheridge, as the Saddlers held on for all three points.
Full-time: Port Vale 0-1 Walsall
Team: Etheridge, McCarthy, O’Connor, Preston, Laird, Chambers, Osbourne, Edwards, Cuvelier (Morris 84’), Jackson (Makris 81’), Bakayoko (Oztumer 72’).
Subs not used: MacGillivray, Roberts, Dobson, Moussa.
Attendance: 5,854 (838 Walsall supporters).