Aaron Collins struck in the last minute as Rovers grabbed a vital win, despite an eighth red card of the season.
Boss Joey Barton made one change to the starting line-up as Nick Anderton replaced the injured Sam Finley. There was also a return to the matchday squad for Harvey Saunders and Alex Rodman, who were named on the bench.
It was a day of firsts at a blustery Memorial Stadium - referee Keith Stroud taking charge of his inaugural League Two fixture and a big return to BS7 for Captain Gas!
There was an early touchline incident that led to Walsall defender White and Rovers boss Barton both seeing yellow in the fifth minute.
A minute later, Aaron Collins registered the game's first shot, which was safely gathered by visiting goalkeeper Rushworth.
Smart play in the centre-circle from Evans set Nicholson free down the left, but he just over-ran the ball and the danger was gone.
Luke Thomas then so nearly grabbed the opener, as his second attempt at a curling shot was fumbled by Rushworth who then had to scramble back to grab the ball on his goal line.
Former Gas defender Menayese gave away a corner in the 28th minute but it was easily cleared as the windy conditions continued to make the game difficult for both sides.
There was another double booking in the 33rd minute; Walsall striker Wilkinson put the sword to Connolly with a late challenge whilst Gas defender Hoole was carded for dissent.
Then, just three minutes later, Hoole was shown a second yellow for a late challenge to leave the Gas down to ten men.
Josh Grant switched to right-back as a result of the red card - Rovers' eighth of the season.
Antony Evans lined up one of his free-kick specials in the fortieth minute, but it sailed straight into Rushworth's midriff from fully thirty-five yards.
It was the last meaningful action of a half that was dominated by referee Stroud.
The ten men of the Gas got underway in the second-half, looking to make it back-to-back wins in the league. Grant forced an early corner which led to an Evans cross being blocked as he advanced into the area.
Good play from Thomas down the right resulted in Josh Grant narrowly firing over the bar in the 53rd minute.
Coutts was shown a yellow in the 56th minute for a foul on Labadie. The Walsall man then found his own name taken by Stroud after a shove on Nicholson.
Wilkinson drove past Anderton down the right and fired into the side-netting after 62 minutes.
Walsall's Kiernan was then booked for simulation after trying to con the referee into awarding a penalty.
Kiernan then registered the Saddlers' first effort on target in the 66th minute; his low drive saved by Belshaw.
Harry Anderson replaced Sam Nicholson with twenty minutes to go as Rovers searched for the breakthrough.
Collins broke down the right flank in the 71st minute and was upended by Daniels. A clever free-kick from Evans to Thomas saw the latter's shot deflected wide for a corner.
Rovers were turning up the Gas and looked the most likely to grab the winner, despite their numerical disadvantage. Thomas looked to get on the end of a Collins cross and the clearance fell to Evans on the edge of the area, but he couldn't get enough power in his shot.
Harvey Saunders entered the fray in the 81st minute, replacing Luke Thomas, who had put in another solid shift.
A further change a minute later saw Whelan replace Grant as the game became stretched.
Out of nowhere, Saunders challenged for a high ball and looked to have been fouled, but Aaron Collins was on hand to head home to put Rovers 1-0 up in the 90th minute.
Belshaw then stretched to claw away a shot as Walsall looked to strike straight back.
The 'keeper stayed on the deck to receive treatment but, after a few nervous glances with Rovers having made all their substitutions, Belshaw was able to carry on.
Walsall's Osadebe was booked for a leading arm on Coutts as the match drew to a conclusion and another three points for the Gas.
Next up is a trip to Sutton in the Sky Bet League Two next Saturday 5th Feb, 3-00pm kick-off.
Rovers: Belshaw, Connolly, Grant, Anderton, Taylor, Thomas (Saunders 81), Collins, Coutts (c), Nicholson, Hoole, Evans.
Subs: Jaakkola, Whelan, Harries, Spence, Saunders, Rodman, Anderson.
Walsall: Rushworth, White, Labadie (Osadebe 67), Daniels, Kiernan (Shade 67), Kinsella, Wilkinson, Miller, Earing, Menayese, Devine.
Subs: Rose, Osadebe (67), Bates, Leak, Perry, Shade (67), Willock.
Referee: Keith Stroud