Walsall 2 (Evans 63, Lalkovic 72)
The Reds failed to capitalise on their early chances and were duly punished by high-flying Walsall as George Evans and former Red Milan Lalkovic won all the points for the Saddlers.
With Marley Watkins and Conor Hourihane missing through injury, another bitter blow was a fifth booking of the season for Ben Pearson - meaning he misses Saturday's match against Fleetwood.
Barely 90 seconds were on the clock when Sam Winnall stole a yard of space in the box as he exchanged a one-two with Simeon Jackson but he skewed wide from inside the area.
Evans fancied his luck from 30 yards on 11 minutes but could only force a routine stop from Townsend as it was straight down the Reds' 'keeper's throat.
Michael Smith was linking up well with Winnall and the advancing Wabara down the right, forcing a corner before the former had a header well saved by MacGillivray from the resulting delivery.
It was George Evans again who forced a shot at goal, having Nick Townsend scrambling across his line to the near post but, thankfully, the Man City loanee's effort flew wide on 19 minutes.
Chances were few and far between as the clock ticked slowly towards half time - Bradshaw hitting the side-netting from a long punt down field on 34 minutes.
Marc Roberts was in the right place on 38 minutes as he blocked Bradshaw's cushioned volley for a corner, before Sam Winnall raced up the other end to meet Michael Smith's through-ball to win a corner.
Winnall forced MacGillivray into a smart stop but the goalkeeper got away with dropping the ball as he recovered to block Smith's shot on the edge of the area with 40 played.
Into the dying seconds of the half and Walsall were patient in their play as they tried to work in their leading marksman Bradshaw, but he could only glance over the bar from Preston's delivery.
A half chance for Mawson from an in-swinging corner saw the centre-half head wide just two minutes into the second half.
Ben Pearson talked himself into the referee's notebook which means he will miss Saturday's home match with Fleetwood Town.
The midfielder then saw his volley blocked wide for another Barnsley corner which saw the Walsall 'keeper make an outstanding save to deny Nyatanga. It was Roberts who met Scowen's corner and Nyatanga headed the flick back across goal but MacGillivray expertly palmed away on 53 minutes.
Just three minutes past the hour saw the deadlock broken and it was the visitors who were celebrating. Saddlers debutant George Evans found the ball drop at his feet from Lalkovic's knockdown seven yards out and he turned on a sixpence before tucking into the far corner.
It was almost level straight away as Lewin Nyatanga came even closer with another header from a corner but he rattled the crossbar.
However the away side made it 2-0 with ex-Red Milan Lalkovic nipping in to meet Sawyers' pass - beating Nyatanga to the ball - before tucking home beyond Townsend.
Harris worked well down the left and managed to dig out a cross onto the head of Winnall with 10 minutes left but the striker's attempt was straight at a grateful MacGillivray.
Townsend denied Walsall a third on 85 minutes after good play by the away side down the right resulted in Bradshaw digging out a shot from the deck but the Reds' goalkeeper saved well with his legs.
The visitors stood strong and wouldn't give the Reds a sniff of goal as the game disappeared into four minutes of stoppage time.
Reds: Townsend, Wabara, Roberts, Nyatanga, Mawson, Scowen, Jackson (Crowley 62), G. Smith (Harris 46), M. Smith (Wilkinson 78), Pearson, Winnall.
Subs: Bree, Walton, White, Digby.
Walsall: MacGillivray, Demetriou, Downing, Chambers, Bradshaw, Sawyers, Forde, Henry, Lalkovic (Cook 84), Preston, Evans (Flanagan 84).
Subs: Jezeph, Baxendale, Morris, Bakayoko, Kinsella.
Referee: Scott Duncan
Attendance: 8,561 (215 Walsall)