Barnsley saw their impressive five-game unbeaten league run comprehensively ended at Craven Cottage.
The Reds side struggled in the capital as goals from Chris Martin and Scott Malone condemned them to their first loss for a month.
Paul Heckingbottom’s side battled hard but lacked a killer-instinct in their first game since selling star striker Sam Winnall to Sheffield Wednesday.
And if it had not been for some smart saves from keeper Adam Davies, then the damage could have been a lot, lot worse.
As early as the fourth minute Davies was called into action. He saved well to deny Tom Cairney and then a minute later thwarted Martin with a brilliant point-blank block.
Davies saved well at his near post from Ryan Fredericks as the hosts forced the early pressure.
Adam Hammill rifled a left-foot shot straight at Fulham keeper David Button as Barnsley broke on the counter, but it was the home side who were controlling proceedings.
Sone Aluko fired over the bar after Josh Scowen’s half clearance, before just after the half hour mark Stefan Johansen teed up Lucas Piazon and he shot over.
Excellent work from Watkins deep inside his own half eventually led to Hammill bursting free and the winger clipped the crossbar with an audacious effort.
Not long after striker Tom Bradshaw headed agonisingly wide of the right post after a delightful inswinging free-kick from skipper Conor Hourihane.
However, disaster struck on the stroke of half-time as centre-back Angus MacDonald conceded a penalty having been adjudged to have fouled Martin.
Martin stepped up and stroked the ball into the bottom right-hand corner for a welcome, arguably deserved, half-time lead.
And it took only ten minutes for the home side to double their advantage as Malone struck a sweet left-foot volley into the bottom right corner to leave Barnsley on the ropes.
Aluko was denied by a brilliant one-handed save by Davies and then Malone fired agonisingly wide of the far post.
Midfielder Stefan Johansen went close to putting the contest out of reach but his right-foot shot flew wide of the far post.
Davies produced another stunning save to block Martin’s goalbound shot, while at the other end the visitors countered and Hourihane forced a save from Button.
Substitute Adam Armstrong had a penalty appeal turned down after he went tumbling after a challenge from Tomas Kalas, but it was Fulham who deserved the points.
Fulham: Button, Fredericks, Malone, McDonald, Cairney, Ream, Johansen (Parker 88), Piazon (Sessegnon 89), Aluko (Odoi 90), Martin, Kalas.
Subs: Bettinelli (g), Smith, Madl, Sigurdsson.
Barnsley: Davies, Bree, White, Roberts, MacDonald, Scowen, Hammil (Kent 70l, Hourihane, Watkins, Bradshaw (Armstrong 70), Williams (Moncur 70).
Subs: Townsend (g), Evans, Jackson, Payne.
Referee: Andy Davies (Hampshire)