Martin Ling’s second home game in charge of the Robins saw Jon Obika open the scoring for Swindon but they were pegged back by Tom Bradshaw’s 61st minute effort before Thompson’s late winner.
Walsall kicked off playing towards the Town End and went straight on the attack earning a corner after just 14 seconds when a shot was deflected behind but the home defence cleared the resulting cross downfield.
Ben Gladwin tried his luck from the halfway line in the 12th minute but his ambitious effort went wide of the upright.
Louis Thompson started a good move for Town in the 16th minute leading to a corner and that led to Turnbull heading goalwards but his effort was saved by Etheridge in the Walsall goal. However the ball was cleared to Louis Thompson and he sent a cross into the penalty area where Jon Obika put Town ahead with a powerful header from close range in the 17th minute with Walsall appealing in vain for offside. The goal was Obika’s 4th of the season.
The visitors threatened briefly when Jordan Cook tried his luck with a curled effort from 20 yards which flew over the bar and they also appealed for a penalty when Tom Bradshaw tumbled under a challenge in the penalty area but the referee ignored his claims.
Anthony Forde fired in a long range shot after dispossessing Gladwin in midfield by Vigouroux in the Town goal pushed his shot around the post for a corner.
Tom Bradshaw was gifted the ball from another weak Town pass in midfield but Vigouroux pushed his shot around the post for a corner and the resulting cross was powerfully punched away by the Town keeper.
Jordan Turnbull was cautioned for upending Forde just outside the penalty area on the Arkells Stand side in the 33rd minute but the resulting free kick saw the Town defence clear downfield.
Walsall’s Forde fired in a powerful shot from the edge of the area and shortly afterwards they earned a corner in the 38th minute after Branco had intercepted a cross but the defence cleared the danger. Forde cropped up again in attack in the 42nd minute firing in a powerful shot which went wide of the upright.
Two minutes of added time were played without incident and Town went in ahead at the break.
Walsall started the second half strongly with Bradshaw and Sawyers both firing in powerful shots in the first two minutes of the half.
Ben Gladwin was cautioned in the 51st minute for a late challenge on Demetriou and when the free kick was taken, Bradshaw flicked the ball wide of the Town goal.
Three minutes later George Evans blasted wide of goal after a good move by the visitors involving several players and Evans repeated the trick in the 58th minute. Ben Gladwin was replaced by Fabien Robert during the break in play.
The visitors drew level in the 61st minute when Tom Bradshaw rolled the ball in from the middle of the penalty area under minimal pressure from the Town defence to the delight of the 282 Saddlers fans in the crowd of 6385..
Bradley Barry drew a superb save from Etheridge in the Walsall goal after the Town player fired in a powerful volley from the right hand side of the box but Town were unable to threaten from the corner.
Bradley Barry was cautioned in the 69th minute for one foul too many for the referee’s liking after he impeded a Walsall player in midfield.
Walsall’s George Evans was cautioned in the 72nd minute for tripping Branco from behind in the centre circle.
Shortly afterwards Branco was shown a yellow card for hauling an opponent down on the edge of the area and when the kick was taken, Forde’s powerful shot was parried by Vigouroux only for the ball to be fired home by a Walsall player but the assistant’s flag was already raised for offside.
Reece Flanagan replaced George Evans in the 76th minute as the visitors looked to try and capitalise on their good possession and Milan Lalkovic also replaced Jordan Cook in the 82nd minute.
Adam El Abd was cautioned in the 87th minute for obstructing an opponent on the touchline.
Town took the lead against the run of play as the match entered the 90th minute when Louis Thompson picked up the ball in midfield and advanced before firing home past Etheridge from 20 yards to ignite the atmosphere around the County Ground.
The 4th official indicated that 4 minutes of added time would be played just before Anton Rodgers replaced the goalscoring hero Louis Thompson and he left the field to great applause.
The visitors earned a corner early in added time which was cleared by El Abd and there were no incidents at either end before the full time whistle was greeted by a tremendous roar in celebration of Town’s win over high flying Walsall.