The Saddlers earned a much-needed three points in a battling performance against Bradford City, despite playing more than 85 minutes with 10 men.
An early goal from Eoin Doyle was cancelled out by Josh Gordon in a dramatic first half as the Saddlers picked up their first win in six games.
After just six minutes, Walsall were reduced to 10 men when Cook was shown a straight red for an alleged elbow on City defender Nathaniel Knight-Percival.
Six minutes later and the visitors made their advantage count when Doyle worked himself some space inside the area and he headed past a stranded Liam Roberts in the Saddlers goal.
Dean Keates’ side stayed resolute and got their just rewards three minutes before half-time when the ball broke to Gordon inside the area after good work from Joe Edwards.
Gordon, who was marked tightly on the penalty spot, hit a true strike which eventually found the bottom corner.
Two minutes after the restart, the Saddlers got themselves ahead through captain Joe Edwards.
Zeli Ismail worked some space on the right wing and his initial cross was met by Matt Jarvis, whose header bounced back off the crossbar but back into the path of Edwards, who headed into the bottom corner.
Five minutes after going ahead, the Saddlers were pegged back. Lewis O’Brien forced Roberts into a super save but the ball landed at the feet of Anthony O’Connor who in turn turned the ball into the empty net.
Moments later and the visitors were a lick of paint away from being ahead. O’Brien picked the ball up 25 yards out and his strike cannoned back of the angle of the bar and post.
Just after the hour mark and the battling Saddlers were ahead again, Gordon again the goalscorer.
From a Luke Leahy corner, Gordon got ahead of goalkeeper Richard O’Donnell to head the ball home for his second of the game.
In the last 20 minutes, it was even more frantic than the first 70 as the Saddlers goal came under increased pressure as Bradford went in search of an equaliser.
Goalkeeper Roberts was on hand on several occasions as he produced fine saves to deny Billy Clarke and Jack Payne.
In the middle of the two superb saves from Roberts, Doyle thought he’d equalised for City only for the brilliant Jon Guthrie to block his shot on the line.