Aleksandar Mitrovic’s first-half hat-trick helped Fulham return to winning ways.
The Serb’s treble lifted the Whites up to third after they had won just one of their last four matches.
Mitrovic should have been awarded an early penalty when he was bundled over in the box by former QPR left-back Ryan Manning.
However, his luck evened itself out in the 12th minute when he fired past Ben Hamer despite standing in an offside position after Tim Ream headed a poor Swansea clearance back into the area.
With Neeskens Kebano and the returning Joe Bryan linking up to great effect down the Swansea right, Fulham dominated from the opening 45 minutes and could have been out of sight before Mitrovic grabbed his second.
The striker, who missed a hatful of chances at Bristol City on Saturday, headed a delightful Harry Wilson cross straight at Hamer from close range before Bobby Decordova-Reid scooped over the bar following a fine, free-flowing move.
Mitrovic grabbed his second when Bryan intercepted a poor pass from Ben Cabango and freed Kebano, who found the big striker unmarked in the box to apply a neat finish.
But the Whites’ defensive woes, which have been on display in the early part of the season, were evident again as Jamie Paterson raced past Ream and Tosin Adarabioyo to fire impressively past Paulo Gazzaniga with the visitors’ first meaningful attack.
But on the stroke of half-time Mitrovic claimed the match ball and calmed any Fulham nerees with a stylish finish from Denis Odoi’s cross for his 10th goal in as many games.
Swansea were much improved in the second half and went close to pulling a goal back just after the restart when Ethan Laird’s shot was deflected onto the post by Ream.
Finn Downes also shot over from close range as the Swans pushed hard for a second goal, but the Whites closed the game out to seal a comfortable win.
Fulham Gazzaniga, Odoi, Ream, Adarabioyo, Bryan (Mawson 55), Reed, Seri, Wilson, (Cavaleiro 72), Reid, Mitrovic (Muniz 69).
Subs not used: Rodak, Hector, Quina, Onomah.