Peterborough United beat a blizzard as well as Walsall to mark the likely appointment of Steve Evans as manager with a vital victory.
Posh overcame the loss of an early goal and a Marcus Maddison penalty failure to win 2-1 with goals from Omar Bogle and, as it turns out, Steven Taylor rather than Jack Baldwin.
Posh survived a frantic finale to move to up two places to eighth, just three points off the play-off places.
There were seven minutes of added time at the end of the match as referee Lee Swaby stopped the game with 10 minutes to go to have the pitch markings swept.
Caretaker-manager David Oldfield made five changes to his Posh starting line-up, although two were forced through injuries to Ryan Tafazolli and Anthony Grant.
Oldfield also reverted to a three centre-back system with Andrew Hughes on the left side, but Posh looked shaky defensively in the opening half and it was no real surprise to see Walsall take the lead on nine minutes from a swift breakway.
Sole strike Julien Ngoy was the scorer on nine minutes after sneaking behind the Posh defence and taking advantage of Jonathan Bond’s rush out his goal. Ngoy went round Bond and slotted past covering defender Baldwin.
Posh should have equalised within two minutes after Jack Marriott’s pace took him behind the visiting defence. Jack Fitzwater tugged him back as he shot and Swaby eventually awarded a spot kick, but Maddison’s effort from 12 yards was painfully weak and kicked to safety by Walsall ‘keeper Liam Roberts.
Walsall looked the more threatening side for a period, but Bond held on to long shots from former Posh star Erhun Oztumer and Kieron Morris before Posh finished the first half strongly.
Bogle’s weak shot straight at Roberts on 37 minutes was a disappointment, but two minutes later he reached Maddison’s decent through ball, aided by a defensive lapse, and calmly placed the ball past the ‘keeper to register his first goal for the club.
Posh then delivered the best passing move of the half with Chris Forrester and Maddison involved before Michael Doughty’s terrific ball was accepted by right wing-back Liam Shephard. His cross was good, but just out of Marriott’s reach.
Posh finished the half on top and started the second period in a similar vein. They were quickly rewarded from a short corner on 53 minutes.
Maddison was the architect slipping past Oztumer into the area and drilling a shot against the foot of a post. The rebound fell to Baldwin who kept his shot low with the ball racing into the net after a helpful flick from Taylor.
The snow fell heavily throughout the second half and Posh couldn’t get the third goal they feared they would need despite plenty of possession.
Walsall sent a couple of attacking substitutes on and started to press a Posh defence well marshalled by Taylor.
Bond did well to tip a 20-yard drive from Maz Kouhyar round a post and from the corner taken by Oztumer, Luke Leahy headed against the bar.
There was a three minute delay to clear the lines with 10 minutes remaining and upon the resumption Marriott missed a fine chance to seal the victory after a Maddison pass.
But back came Walsall with a low left wing cross poked wide by substitute Florent Cuvelier when he should have scored.
And there was a thrilling finish to the game with Posh throwing bodies in the way of shots while looking dangerous themselves on the break.
Roberts made a stunning save from Marriott and also denied Maddison who had raced clear before the final whistle blew to confirm a first win in six League One games for Posh.
Posh: Jonathan Bond, Liam Shephard, Andrew Hughes, Jack Baldwin, Steven Taylor, Chris Forrester, Michael Doughty, Joe Ward (sub Leo Da Silva Lopes, 81 mins)., Marcus Maddison, Jack Marriott, Omar Bogle (sub Junior Morias, 67 mins).
Unused substitutes: Conor O’Malley, George Cooper, Jermaine Anderson, Lewis Freestone, Danny Lloyd.
Walsall: Liam Roberts, Nicky Devlin (sub Florent Cuvelier, 8, Jack Fitzwater, Jon Guthrie, Luke Leahy, Adam Chambers, George Dobson, Kieron Morris (sub Amadou Bakayoko, 70 mins), Qamaruddin Kouhyar (sub Justin Shaibu, 78 mins), Erhun Oztumer, Julien Ngoy.
Unused substitutes: Mark Gillespie, Kory Roberts, Liam Kinsella, Reece Flanagan.
Goals: Posh - Bogle (39 mins), Taylor (53 mins).
Walsall - Ngoy (9 mins).
Cautions: Posh - Doughty (foul).
Walsall - Fitzwater (foul), Dobson (simulation), Ngoy (foul).
Referee: Lee Swaby 7
Attendance: 2,531 (81 Walsall).