Marley Watkins’ cool finish four minutes in gave the Reds an early lead but Lucas Piazon and Sone Aluko scored either side of Sam Winnall’s effort to send the sides in level at 2-2.
Scott Malone gave Fulham the lead for the first time in the contest within 40 seconds of the restart before Chris Martin increased the visitors advantage with a close range header.
To make matters worse, Josh Scowen was shown a straight red card for a challenge on Scott Parker, which was made after the referee’s whistle had sounded and in which he appeared to win the ball.
Andy Yiadom drew a save out of David Button in the final minute but could not reduce the deficit as the stopper repelled his effort.
The Reds will look to end their five match winless run on Tuesday night, when Newcastle United visit Oakwell.
The Reds had the game’s first chance three minutes in when Ryan Kent’s free kick was turned goalward by Angus MacDonald with David Button able to gather the ball comfortably.
Less than 60 seconds later, the Reds opened the scoring with a fast break down the centre of the pitch as Sam Morsy released Marley Watkins, who calmly slotted past the onrushing David Button.
Stand-in captain Marc Roberts made an excellent challenge to prevent the Cottagers firing an effort on target soon after with Lucas Piazon flashing a corner across the face of Adam Davies’ goal.
Ryan Kent’s blistering speed drew the game’s first yellow card of the game as Stefan Johansen dragged back the Reds winger as he burst clear.
Sone Aluko was next to test Adam Davies as he cut inside from the left flank, only to find the Wales stopper more than equal to his effort.
Kent’s speed on the break continued to pose questions of the Fulham defence as Tom Cairney pulled back the winger as Barnsley cleared their lines from a free kick.
The Fulham midfielder chanced his arm with an effort from just outside the area that flew over Davies’ crossbar midway through the half and drew level in the 37th minute.
Scott Malone drilled the ball into the penalty area and Lucas Piazon fired into the top corner with the help of a deflection.
Barnsley regained the lead four minutes later, with Morsy again playing a starring role in an excellent Reds move.
He picked the ball up just inside the Reds half, surged forward and slipped in Sam Winnall, who fired home via the inside of the post.
But seconds later, the visitors restored parity as Sone Aluko fired home from inside the area to send the sides in level at 2-2.
With the second half only 36 minutes old, Fulham took the lead in the contest for the first time as Malone’s cross looped over the head of Davies and into the far corner.
Winnall received a caution after a brief altercation in the area between the Reds forward and Fulham’s Chris Martin, with the latter cautioned for an off the ball incident a few moments later.
Hammill swung a delightful free kick into the area but Winnall was unable to turn the ball goalward before Fulham increased their advantage as Martin glanced home Malone’s 65th minute cross.
To add insult to injury for the Reds, Josh Scowen was dismissed three minutes later for a challenge on Scott Parker.
The midfielder skipped away from two challenges and was fouled both times, before challenging Parker after the referee’s whistle had blown.
Despite appearing to win the ball cleanly, Keith Stroud gave Scowen his marching orders, leaving the Reds to play the final 22 minutes with 10 men.
To counter the numerical disadvantage, Head Coach Paul Heckingbottom sent on Adam Armstrong and Tom Bradshaw for Sam Winnall and Marley Watkins but the visitors continued to press.
Aluko fizzed an effort just over the crossbar as did Malone as the visitors set about trying to increase their advantage.
Hammill was shown a yellow card in the dying embers for a challenge on Aluko while Andy Yiadom fired an effort straight at Button in the final seconds of the half.
Attendance: 11,974 (735 away)
Reds: Davies, Yiadom, Roberts, MacDonald, Kpekawa, Hammill, Morsy (Bree, 80’ ), Scowen, Kent, Winnall (Armstrong, 71’ ), Watkins (Bradshaw, 71’ ).
Subs: Townsend, Lee, A. Jackson, Bird.
Fulham: Button, Odoi, Ream, Sigurdsson, Malone, Parker, Cairney (Kebano, 84’ ), Johansen (Tunicliffe, 70’ ), Piazon, Aluko, Martin (Smith, 90+2’ ).
Subs: Bettinelli, Fredericks, Madl, Sessegnon.