David Ngog put the visitors in front in the 15th minute, stabbing home after Luke Steele had kept his first effort out.
Steele stopped the Trotters from pulling further clear with a strong save to deny Chris Eagles.
However, he could do nothing to stop Jay Spearing's driven effort from the edge of the box from finding the net, as a slight deflection took the ball off its course.
Dougie Freedman's men were well in control at the break, but were caught cold after the restart as the Tykes dragged themselves level.
Bolton retook the lead through Craig Dawson, who fired home when Steele could only palm Marcos Alonso's free kick into his path.
The hosts nearly drew level immediately, but Bolton had Bogdan to thank for keeping out Jim O'Brien as he bore down on goal.
A goalmouth scramble nearly resulted in a fourth goal for the visitors just moments later as the Oakwell crowd struggled for breath.
The game was keenly contested until the finish, but it was Freedman's side who went on to claim all three points.