Match ends, Walsall 1, Oldham Athletic 0.
Walsall keeper Richard O'Donnell saved a last-gasp Adam Rooney penalty as the Saddlers saw off Oldham Athletic to climb into the League One top six.
Oldham had the better of the first half, although the Saddlers hit the post through Andy Taylor's free-kick.
But Walsall improved in the second half, Sam Mantom sidefooting his team ahead on 65 minutes from 18 yards.
Latics' pressure was rewarded when Paul Downing felled James Wesolowski but Rooney's spot-kick was superbly saved.
Febian Brandy lasted 73 minutes on his return to Bescot following his loan move back to Walsall from Sheffield United, playing a part, along with Romaine Sawyers and Milan Lalkovic, in the build-up to Mantom's goal.
Walsall now face an even bigger home game on Saturday when they host League One leaders Brentford at Bescot.
VIEW FROM THE DRESSING ROOM
Walsall manager Dean Smith told BBC WM:
"There's been plenty of games when we've played well and not got the three points, so we'll take that tonight when we probably didn't deserve it.
"Sometimes you have to grind out a result. We were holding on at the end and had to man the gates.
"But it was a great penalty save by Richard O'Donnell and I'm really pleased for him. He's an improving keeper who works very hard at his game.
"Sam Mantom took his goal well. It was a good finish from a well-worked move. He's got goals in him."
Oldham manager Lee Johnson told BBC Radio Manchester:
"We didn't get what we deserved, but it was a superb performance from the boys.
"We can't legislate for some of the poor finishing. For some reason, the gods weren't smiling on us and we couldn't get the ball over the line.
"Their goalkeeper was a deserved man of the match. Sometimes keepers win you points and he's won them points.
"But if we keep playing like that, surely it will turn."
- 3TaylorBooked at 90mins
- 29BrandySubstituted forHemmingsat 74'minutes
- 10WestcarrSubstituted forHewittat 88'minutes
- 5KusungaBooked at 70mins
- 3GroundsBooked at 63mins
- 20PetrassoSubstituted forClarke-Harrisat 66'minutesBooked at 90mins
- 10MacDonaldSubstituted forHarkinsat 67'minutes
- 27PhilliskirkSubstituted forRooneyat 80'minutes
- Fred Graham
- Shots on Target
Second Half ends, Walsall 1, Oldham Athletic 0.
Penalty saved! Adam Rooney (Oldham Athletic) fails to capitalise on this great opportunity, right footed shot saved in the bottom left corner.
Andy Taylor (Walsall) is shown the yellow card.
Penalty Oldham Athletic. James Wesolowski draws a foul in the penalty area.
Penalty conceded by Paul Downing (Walsall) after a foul in the penalty area.
Johnson Clarke-Harris (Oldham Athletic) is shown the yellow card.
Attempt missed. Johnson Clarke-Harris (Oldham Athletic) header from the centre of the box is too high.
James Wesolowski (Oldham Athletic) wins a free kick in the defensive half.
Foul by Ashley Hemmings (Walsall).
Attempt saved. Andy Taylor (Walsall) right footed shot from outside the box is saved in the centre of the goal.
Substitution, Walsall. Troy Hewitt replaces Craig Westcarr.
Attempt missed. Adam Rooney (Oldham Athletic) right footed shot from the centre of the box misses to the right.
Corner, Oldham Athletic. Conceded by James Chambers.
Attempt blocked. James Dayton (Oldham Athletic) right footed shot from the left side of the box is blocked.
Foul by Sam Mantom (Walsall).
James Wesolowski (Oldham Athletic) wins a free kick in the attacking half.
Substitution, Oldham Athletic. Adam Rooney replaces Danny Philliskirk.
Attempt saved. Gary Harkins (Oldham Athletic) right footed shot from outside the box is saved in the centre of the goal.
Foul by James Chambers (Walsall).