James Belshaw - 7
Had very little to do until Connor Wilkinson tested his handling skills in the second half, and he made an important save to deny George Miller after Rovers went ahead in stoppage time. As always, he swept up well whenever Walsall looked to drop long balls in behind the defence
Luca Hoole - 4
Perhaps foolishly raced to the referee to vent his frustration to earn his first booking, and he did not need to make the challenge that led to the red card on 38 minutes, but it felt harsh. A learning afternoon for the teenager.
James Connolly - 8
Took the safety-first option whenever it was his duty to mop up, which was wise in then howling wind. Won too many headers to count.
Connor Taylor - 8
An afternoon where the centre-backs had to be error-free and Taylor was just that. Gave Walsall no platforms to attack from.
Nick Anderton - 7
Gave the ball away too freely in the first half and gave Walsall a half chance when misjudging a ball in the air and being taken out of the game, but he stood tall when Rovers were a man down and defended his flank well.
Josh Grant - 6
Was doing a steady job in midfield before being moved out to right-back to cover for Hoole's red card. Appeared to play through some discomfort before being taken off in the closing stages. There will be huge frustration for the player and the staff if he is held back by another injury.
Paul Coutts (c) - 7
The conditions meant this wasn't a day for taking too many touches in midfield and although the captain's decision to hook the ball forward often led to groans, it was a sensible policy. Coutts got stuck in and handled himself well on a booking.
Antony Evans - 6
Not his kind of game with the ball sailing over his head in both directions, but he worked hard to get Rovers on the front foot.
Sam Nicholson - 6
Worked manfully all afternoon, but the man disadvantage made it difficult for Rovers' attackers. He had few moments to show his quality.
Luke Thomas - 7
Pressed relentlessly, winning the ball in dangerous areas and never giving the Walsall defence a moment's rest in possession. He was Rovers' likeliest source of a goal, too. Made one defender look foolish with a nutmeg before stinging the palms of Carl Rushworth. That was about as close as Rovers got on a testing afternoon in difficult conditions.
Aaron Collins - 7
Carried a threat but did not make the most of the few chances he had. Should have done better when Thomas' hard work gave him a good opportunity from 18 yards. Then, he repeated his Hartlepool trick by popping up at the death to score the goal that sent Rovers to their fourth win in five.
Substitutes
Harry Anderson (for Nicholson on 70') - 7
A fresh injection of energy was just what Rovers needed.
Harvey Saunders (for Thomas on 82') - 8
Made use of his superior speed to create the goal, forcing mistakes from Donervon Daniels and Carl Rushworth.
Glenn Whelan (for Grant on 84') - 7
Played the percentages to ensure Rovers did not come under pressure.
Not used: Anssi Jaakkola, Cian Harries, Alex Rodman, Sion Spence.
SIGN UP: For our newsletter to receive more exclusive Bristol Rovers content