A last minute winner from young forward Sion Spence helped Bristol Rovers to their first victory in three outings.
Spence had only been on the pitch for a minute before scoring, netting his first goal for his new side.
The Saddlers now sit just one place above the dreaded relegation zone, whilst Joey Barton's side rise to 18th.
Matthew Taylor opted to make three changes ahead of the game, as Emmanuel Osadebe and Rollin Menayese were both dropped for Brendan Kiernan and Ash Taylor, whilst academy graduate Sam Perry replaced the injured Liam Kinsella.
Walsall: Rushworth; White, Taylor, Monthe, Ward, Earing, Perry, Kiernan, Phillips, Shade, Miller
Meanwhile with the travelling Gas, changes were needed after two consecutive defeats. Paul Coutts, Harry Anderson, Harvey Saunders and Cian Harries replaced Aaron Collins, Nick Anderton, Junior Brown and the injured Josh Grant.
Bristol Rovers: Belshaw; Harries, Kilgour, Taylor, Anderson, Whelan, Finley, Coutts, Evans, Saunders, Pitman
Story of the match
Bristol Rovers set the tone of the match early on, as a mix up between Hayden White and Taylor resulted in Anderson receiving the ball in the box, but a mix of Manny Monthe and Carl Rushworth saw the ball parry wide.
The resulting corner was nearly heroically buried by Cian Harries, but his courageous effort sailed over the bar.
Some excellent distribution from Rushworth saw the Saddlers break, but a low cross from Huddersfield Town loanee Kieran Phillips was rifled over by Kiernan.
And Walsall would find their breakthrough just half an hour in, with Phillips the hero. A strong header from Jack Earing found Kiernan, who fed Phillips in behind before the young striker bundled the ball past the outstretched James Belshaw.
The away side came close to equalising on the brink of half time, as a clever cushioned lay off from Brett Pitman was hammered over by Sam Finley, before Anderson had a close effort blister the side netting.
Heading into the second half, the Gas continued to ply for their equaliser, and nearly had it as Anderson's cross almost snuck into Rushworth's near post.
Belshaw prevented Bristol Rovers from having a mountain to climb, as a rare Walsall chance saw the goalkeeper stop Phillips from having his second.
The Rovers goalkeeper was on form though, as George Miller raced through on goal but his goalbound effort was bravely parried by Belshaw.
Belshaw's heroics were rewarded finally though, as Bristol Rovers pressure prevailed. A low corner was cleverly flicked on by the experienced Pitman, before Stoke City loanee Taylor fired the loose ball into the evaded net, sending the travelling Gas into pandemonium.
But Bristol Rovers weren't done, and they'd celebrate again. On the announcement of five minutes additional time, the Gas punished some sloppy Walsall defending, as a cross to the back post caused a scramble before substitute Spence bullied the ball past Rushworth.
The Saddlers would have one more chance before the final whistle, as Monthe's last ditch lash went wide of the target, sentencing Walsall to no points and their second consecutive defeat.
Despite holding onto their lead for 47 minutes, Walsall didn't look up to standard to merit a point.
The Saddlers defended valiantly for a long time but the lack of attacking prowess in the second half killed the game off for Walsall, who had two attempts in the final 45. Miller tried his best but was often isolated up top.
It needed a lot of grafting and an injury time winner, but it can't be denied that Bristol Rovers deserved the three points at the Banks's Stadium.
The Gas just hammered the Walsall net in the second half, testing Rushorth on a number of occasions. The usage of Anderson and Saunders worked fantastically, constantly terrorising the slower Walsall full-backs and gifting the goals.
Star man: Connor Taylor
The towering centre-back is just 19-years-old, but showed class in keeping Miller quiet and of course netting his first senior goal.
Walsall goalkeeper Rushworth also deserves a mention, coming unlucky today.