The Swans midfielder's late strike ensured that the floundering west Londoners have now failed to take a point from their previous four top-flight outings.
A fortuitous Scott Parker effort just after the hour mark looked to have earned Fulham a 1-1 draw, but Jonjo Shelvey weaved through the home defense and buried the ball into the top corner with 10 minutes left to end Swansea's three-game winless streak in the Premier League.
The hosts created the better of the first-half openings with Darren Bent twice going close, but Fulham fell behind to Aaron Hughes' own goal early in the second half. Fulham drew level when Parker's cross-shot found the far corner, but the club was consigned to a fourth straight league defeat by Shelvey's 20-yard drive.
After a lackluster opening, Bent could have handed Fulham the advantage, first heading wide when unmarked at the far post before then rifling an effort against the post.
Swansea improved in the second half, though, and found the breakthrough in the 56th minute when Hughes turned in Jonathan de Guzman's cross.
Fulham bounced back, however, and restored parity nine minutes later with Parker's fortunate strike. But Shelvey had the final say with his fine solo goal late on.
Bent and Bryan Ruiz were restored to Fulham's starting XI after the 4-0 drubbing at Liverpool last time out, while Michel Vorm returned from suspension for Swansea.
After a slow opening, the visitors began to settle and almost took the lead in the 25th minute when Roland Lamah's effort deflected off Hughes and nearly crept in with Maarten Stekelenburg wrong-footed.
Having seen off that danger, Fulham had a spell of pressure and should have gone in front soon after when Parker's perfectly weighted cross was met by Bent at the back post, only for the striker to head wide. And Swansea was once again let off the hook as Bent hit the woodwork just after the half-hour mark. The ball sat up perfectly for the striker on the right side of the box and his half-volley rebounded off the post.
But the hosts could have been punished for their profligacy three minutes before the break. Derek Boateng was caught in possession by Jose Canas, whose through ball found Nathan Dyer — only for the winger to shoot straight at Stekelenburg.
Swansea upped the tempo in the second half and took the lead 11 minutes after the interval. A quick free kick led to De Guzman drilling in a low cross that was inadvertently bundled home by Hughes.
Their lead was short-lived, however, as a short corner was played to Parker and his attempted cross took a deflection and found the top corner after evading Canas on the line.
But Michael Laudrup's men were not to be denied and restored their advantage when Shelvey held off two challenges before firing into the top corner to earn Swansea its first league success since a 4-0 win over Sunderland on Oct. 19.