Port Vale 2 (O'Connor 24, Marshall 89)
Reds 1 (Hourihane pen 59)
Barnsley blew it at Port Vale in the 89th minute as Vale's six-match losing streak came to an end against the Reds.
The Reds started brightly and were keeping composed on the ball but they failed to carve a real chance from Hourihane's cross. It was actually the hosts who got the first shot of the day in as Mark Marshall chased down a long ball before curling well over on two minutes.
Marshall was seeing a lot of the ball down the Barnsley right and his cross had to be turned out for a corner by Turnbull on nine minutes.
Conor Hourihane bent in a free-kick that Neal saved at his near post but the angle was always against the midfielder on 18 minutes.
Play opened up for Jordan Slew on 20 minutes and although his shot towards the top corner was powerful, Turnbull made the save look simple and gathered at the second attempt.
On 24 minutes the hosts took the lead and in some style. Michael O'Connor bent in a 22-yard free-kick that beat Turnbull all ends up and landed in the top corner.
The Reds were struggling to settle but when they did, Brown found time to deliver for Cole although his header lacked conviction to beat Neal from 10 yards on 31 minutes.
Vale did well to close out the Reds as they stormed forward with menace but Hourihane couldn't squeeze his shot beyond the dive of McGivern on 35 minutes. Straight up at the other end and Jean-Yves M'voto cleared off the line as Dodds fired in from the right after latching on to Marshall's delivery.
The hosts were throwing their bodies on the line to preserve their slender lead and Keith Treacy was denied from 12 yards when it seemed more certain he would score on 43 minutes.
James Bree replaced Reece Brown for the Reds at the break and immediately after the restart Dodds looped a 25-yarder at goal but Turnbull was able to deny the strike.
The Reds had to make another goal-line clearance, this time it was Joe Dudgeon to sweep away Slew's low strike from 12 yards on 53 minutes.
On 58 minutes, just after Winnall had replaced Treacy, the Reds won a penalty. Hourihane was the man pushed over in the box and dusted himself down to take responsibility. For his sixth of the season, he beat Neal to his left as his penalty smacked the post and went in.
The second half had turned into a really well-contested affair with plenty of tough tackles flying in. Former Red Carl Dickinson picked up a caution for a late hack at Devante Cole.
An extremely soft penalty was awarded to the hosts on 70 minutes as M'voto touched Marshall in the box. Jordan Slew stepped up but he could only hammer high into the stand on 71 minutes.
Winnall thought he had found the top corner on 75 minutes but Neal denied the striker a second of the season with a great save.
The Reds went close again as Devante Cole burst forward and through the Vale defence but he couldn't send his shot beyond Neal and the goalie punched clear.
Barnsley's third and final change came on 81 minutes with James Bailey replacing Leroy Lita.
With two minutes of normal time remaining, Ross Turnbull pulled out the save of the afternoon to deny Marshall's first-time drive. It didn't matter though because the winger danced in from the right on 89 minutes before beating Turnbull at his far post.
The hosts were desperate to end their losing streak and battled away in the corner to see the clock down.
Port Vale: Neal, Yates, Dickinson (c), McGivern, Duffy, Dodds (Moore 76), Lines, Pope, O'Connor (Brown 63), Marshall, Slew (Williamson 76).
Subs: Johnson, Robertson, Daniel, Jennings.
Reds: Turnbull, Brown (Bree 46), Dudgeon, Nyatanga, Mvoto, Cranie (c), Treacy (Winnall 58), Hourihane, Jennings, Lita (Bailey 81), Cole.
Subs: Davies, Hemmings, Berry, Noble-Lazarus.