Reds 2 (Winnall 59, Hourihane 68 pen)
Bristol City 2 (Ayling 36, Wilbraham 78)
Barnsley battered league-leaders Bristol City at Oakwell and somehow came away with only a point to show for their efforts.
The Reds overturned the Robins' lead in the second half as they really took the game to the table-toppers but were pegged back following a slice of good fortune for the visitors.
Both sides had shots from the edge of the box early on with Joe Bryan hammering low but wide on three minutes and Winnall responded for Barnsley on seven minutes but his strike was deflected wide.
Shouts for a penalty were turned down by Darren Deadman as Ryan Williams charged his way into the box and was just about to set Devante Cole up with a tap-in but Derrick Williams ended the Australian's run.
When Luke Freeman managed to dig out a decent cross from the right on 28 minutes, Joe Bryan should have done better as he connected well on the volley but sent his shot the wrong side of the post.
Right down the other end, Cole curled a wonderful shot towards the top corner but Fielding got across to claw the ball away.
The Reds came very close to the opener on 33 minutes when the play was patiently spread to the left, Cole's fierce strike was blocked into Winnall's path and his attempt was denied by the sliding challenge of Williams.
To Luke Ayling's surprise, he found himself free in the area on 36 minutes and he duly nodded into the far corner for City's opener.
One minute of stoppage time was added to the first half but the Reds failed to create another chance.
Eight minutes into the second half saw the Reds come very close to an equaliser through Devante Cole. Joe Dudgeon's cross was perfect for the Man City loanee and his header back across goal was cleared by Flint on the line.
There was wind in the Barnsley sails as the home side continued to come forward in the opening exchanges of the second half and Hourihane saw a shot from distance blocked inside the area after Ramage had come close with a stab at goal from six yards.
On 59 minutes it finally dropped Barnsley's way when Winnall found the ball at his feet in the box from Williams' cross. The striker composed himself and curled a perfect shot into the top corner from a fairly tight angle.
The Robins responded with a long-range effort but Barnsley were on top as Williams sent one just wide at the other end on 63 minutes.
With 67 gone the Reds were awarded a penalty when Conor Hourihane was bundled over in the box by Luke Ayling. The Irishman took responsibility in front of the Ponty End and he slammed into the bottom corner to send Oakwell wild. It had been coming as the Reds had completely dominated the second half.
City got very lucky on 78 when, against the run of play, Barnsley tried clearing on the edge of their own box and Cranie took a whack to the face with the ball dropping from Wilbraham. The big striker made no mistake and hammered into the top corner from just inside the area.
The Reds could have gone in front as Hourihane charged forward on 82 but with plenty of options he chose to shoot and his shot cannoned off a Barnsley shirt in an offside position.
Dale Jennings replaced Ryan Williams for the Reds for the home side's first change of the match.
Hourihane then hammered the upright on 85 as Bristol City just couldn't cope with the Barnsley attack. Winnall was the man to tee him up from the left as another attack went so close for Wilson's side.
Turnbull then had to be alert to gather from the feet of Wagstaff on 87 minutes after the substitute broke through.
Four minutes of stoppage time was added by the Fourth Official a both sides went for the winner.
The visitors came close at the end with a long punt into the box that Ramage had to clear off the line but the referee's whistle sounded full-time meaning the Reds only claimed a point.
Barnsley: Turnbull, Dudgeon, Berry, Nyatanga, Cranie (C), Hourihane, Winnall, Williams (Jennings 84), Ramage, Bailey, Cole.
Subs: Davies, Treacy, Hemmings, M’voto, Bree, Lita.
Bristol City: Fielding, Little, Williams, Flint, Smith, Elliott (C), Freeman (Emmanuel-Thomas 70), Wilbraham, Agard (Wagstaff 86), Ayling, Bryan (Cunningham 90+2).
Subs: Richards, El-Abd, Burns, Pack.