Andy Cook scored a hat-trick as the Saddlers eased to a first win in eight matches with a convincing victory at Gillingham.
The forward netted two first-half headers before adding a close-range third shortly after the restart to take his season tally to 15.
The Saddlers started brightly and took the lead on nine minutes when Cook escaped his marker to power home a close-range header from Luke Leahy’s inviting free-kick.
Cook doubled his and the visitors’ tally with another header ten minutes later, nodding home ex-Gills winger Matt Jarvis’ pinpoint cross at the far post.
Gillingham offered little in response, making a tactical change just after the half-hour as Tom Eaves replaced Alex Lacey, switching to a 4-4-2 formation.
Connor Oglivie headed harmlessly wide and Luke O’Neill curled a long-range free-kick wide as the Saddlers kept the hosts at arm’s length.
The excellent Jarvis threatened to increase Walsall’s advantage on the stroke of half-time, bursting past two players into the area before poking his shot into the side-netting.
A third Walsall goal arrived two minutes after the restart when Leahy’s long throw found its way to Cook, who swivelled and lashed past Tomas Holy to complete his hat-trick.
With confidence flowing through their veins, the Saddlers almost added a fourth as Jarvis pulled the ball back for Josh Gordon to direct a header wide.
Walsall never looked like relinquishing their lead, with Gillingham not registering a shot on target until the 77th minute – a curling Regan Charles-Cook effort which Liam Roberts saved comfortably.
Gillingham (3-4-1-2): Holy; Lacey (Eaves 35’), Zakuani, Ogilvie; O’Neill, Reilly (Hanlan 63’), Byrne, Garmston; Rees; Parker (Charles-Cook 45’), List.
Subs not used: Hadler, Ehmer, Simpson, Oldaker.
Saddlers (4-4-2): L Roberts; Norman, Johnson, Guthrie, Leahy; Devlin, Osbourne, Edwards, Jarvis (Laird 80’); Cook, Gordon (Kinsella 84’).
Subs not used: Dunn, Dobson, Morris, Ismail, Mussa.