A 93rd-minute goal from Steve Cook condemned Barnsley to a third straight loss and kept them bottom of the Championship.
After an entertaining game in which both sides came close several times, Cook headed in on the line after Reds' man of the match Luke Steele had made one of several tremendous stops.
Barnsley are still just three points away from safety after none of their relegation rivals won. But they will be desperate for a win from trips to Reading on Tuesday and Yeovil on Saturday.
Danny Wilson made five changes to the team who lost to Brighton with Marcus Pedersen, Peter Ramage and Ryan McLaughlin all overcoming injuries. Martin Woods and Chris O'Grady also returned to the side while dropped to the bench were Jacob Mellis, Jean Yves M'voto, Liam Lawrence and Nick Proschwitz. Emmanuel Frimpong was left out of the squad.
Barnsley began the match well - with O'Grady having a header saved by Lee Camp on 15 seconds - but the visitors soon started playing some good football and Steele only just kept out two long-range efforts.
Lewin Nyatanga was lucky to stay on the pitch when he hauled down Lewis Grabban just outside the box but the referee decided the visiting striker had fouled the Reds defender.
Both sides missed fine chances before the break as Andrew Surman fired wide in a one-on-one situation then Woods missed an open goal after Camp dropped O'Grady's cross. Steele then made an impressive stop from Cherries top-scorer Grabban on the stroke of half-time.
After the break, Pedersen headed over from Dale Jennings' cross then blazed a fine chance wide after a good run and pass from O'Grady.
Matt Ritchie then hit the bar with a superb 30-yard curler before forcing a fantastic point blank save from Steele. But Barnsley's 'keeper was eventually beaten.
There was more bad news for the Reds who lost centre-back Ramage to another hamstring on 83 minutes. He is expected to miss around three weeks.