Match ends, Walsall 1, Swindon Town 0.
Swindon's League One survival hopes suffered a major setback after defeat at Walsall left them two points from safety with two games remaining.
Joe Edwards' 85th-minute winner for Walsall was a blow for the 22nd-placed Robins, especially with the two sides above them - Port Vale and Bury - having a game in hand.
Walsall almost led inside a minute as Jason McCarthy would have swept home Kieron Morris' cross from 10 yards out if not for Robins defender Dion Conroy's goalline clearance.
Swindon responded as Fankaty Dabo lashed inches wide from 25 yards and Ben Gladwin was denied a brilliant solo goal by a superb one-handed stop from Walsall keeper Craig MacGillivray.
Town's Charlie Colkett curled inches wide on the stroke of half-time and despite being second best after the break they almost won it with nine minutes left.
However, MacGillivray produced another wonderful fingertip save to thwart Gladwin's glancing header and Walsall won it four minutes later.
Substitute Erhun Oztumer picked out Edwards and he advanced into the box before drilling a cool finish across Lawrence Vigouroux.
Match report supplied by the Press Association.
- 4O'ConnorBooked at 56mins
- 14OsbourneSubstituted forDobsonat 75'minutes
- 33MakrisSubstituted forOztumerat 72'minutes
- 29Rossi Branco
- 21DaboSubstituted forBrophyat 77'minutes
- 4ThomasSubstituted forGoddardat 66'minutes
- Ross Joyce
- Shots on Target
Second Half ends, Walsall 1, Swindon Town 0.
Attempt blocked. George Dobson (Walsall) right footed shot from outside the box is blocked.
Erhun Oztumer (Walsall) wins a free kick on the right wing.
Foul by Dion Conroy (Swindon Town).
Delay in match Adam Chambers (Walsall) because of an injury.
Corner, Walsall. Conceded by Bradley Barry.
Eoghan O'Connell (Walsall) wins a free kick in the defensive half.
Foul by Jonathan Obika (Swindon Town).
Goal! Walsall 1, Swindon Town 0. Joe Edwards (Walsall) left footed shot from the centre of the box to the bottom right corner. Assisted by Erhun Oztumer.
Attempt blocked. Erhun Oztumer (Walsall) right footed shot from the centre of the box is blocked.
Corner, Swindon Town. Conceded by James O'Connor.
Attempt blocked. Jonathan Obika (Swindon Town) right footed shot from the centre of the box is blocked.
Attempt saved. John Goddard (Swindon Town) right footed shot from the left side of the box is saved in the bottom left corner.
Attempt missed. Rohan Ince (Swindon Town) right footed shot from outside the box is close, but misses the top left corner.
Substitution, Swindon Town. James Brophy replaces Fankaty Dabo.
Substitution, Walsall. George Dobson replaces Isaiah Osbourne.
Attempt missed. Erhun Oztumer (Walsall) right footed shot from outside the box is close, but misses to the left.
Corner, Swindon Town. Conceded by Matt Preston.
Kieron Morris (Walsall) wins a free kick in the defensive half.