Match ends, Fulham 1, Swansea City 2.
Jonjo Shelvey came off the bench to secure Swansea's first win in six matches and leave Fulham in the Premier League relegation zone.
Captain Scott Parker notched his first goal for Fulham with a curling effort to cancel out Aaron Hughes's own goal.
But Shelvey netted the winner when he made space on the edge of the area late on and fired past Maarten Stekelenburg.
The defeat adds pressure on Fulham boss Martin Jol, with some fans calling for his sacking after the final whistle.
Hughes's own goal on 56 minutes summed up a frustrating opening to the season for Fulham and their manager Jol, who has been criticised for their poor position.
His side have now lost eight of their 12 league matches and the presence of recently-appointed head coach Rene Meulensteen alongside him in the dugout could not improve the Cottagers's downward momentum.
Despite their opponents lowly form, Swansea came into the fixture just two points better off in what has been their worst start to a season in the top flight.
Without the influence of Spaniards Michu and Pablo Hernandez, the Welsh side could only draw 3-3 at home with Stoke in their last outing, but Shelvey's solo strike brought to an end what their manager Michael Laudrup had called a "difficult time".
The former Liverpool player weaved an opening with 10 minutes remaining and lifted the ball into the top corner from 18 yards to give his side the points at the end of an entertaining second-half.
The man he replaced, Nathan Dyer, had the Swans' best opening of the first period, but smashed against the legs of Stekelenburg from a narrow angle in added time.
A Roland Lamah deflected effort had rooted the Dutch keeper to the spot earlier in the game, only for the ball to roll wide, but it was Fulham's Darren Bent who missed the half's golden chance.
He volleyed against the post from the centre of the area after pouncing on a long ball and when Hughes bundled De Guzman's cross into his own net on 56 minutes, Bent's error was compounded.
Fulham have now conceded the first goal in nine of their 12 league fixtures, but Parker, who was captain for the first time, lead the response.
His curler from 18 yards may well have been meant as a cross, but his first goal since joining from Tottenham looked significant going into the last quarter.
Stekelenburg denied Wilfried Bony with a smart low save as the visitors, typically confident in possession, looked most likely to net the winner.
And Shelvey, introduced on the hour, made the difference with a quality strike before almost adding a third late on when he rounded Stekelenburg, only for Steve Sidwell to make a last-ditch tackle.
Fulham rallied, but could not trouble Michel Vorm and have now scored just once on their last seven home league games at Craven Cottage.
Fulham manager Martin Jol:
"Darren Bent could have scored a hat-trick and we should have been up but it didn't happen and the own goal we scored was tough on us as we could have been up at half-time.
"If you don't score, you can't win games. They had players missing and we had the chance to beat them. You have to take the opportunities in this league and we didn't.
"All the hard work we've done in the last two weeks we haven't built on today. I want the fans to realise that Swansea are a good team and we were unfortunate. A win would have put us above them and it was close."
Swansea manager Michael Laudrup:
"Another win away is always difficult wherever you play and especially this time. It was so important for us today. Apart from that though we played very well and I think it was well deserved.
"In difficult moments, it is important to get points and we kept our way of playing. It's not always easy when you have added pressure so I have to congratulate the team.
"We scored good goals and we had chances for more but even without looking through biased eyes, we deserved it."
- 23BoatengBooked at 19minsSubstituted forSidwellat 60'minutes
- 18HughesBooked at 62mins
- 8KasamiBooked at 30mins
- 28ParkerSubstituted forTaarabtat 86'minutes
- 10RuizSubstituted forKacaniklicat 77'minutes
- 33DaviesBooked at 72mins
- 21Cañas Ruiz Herrera
- 4Flores Moreno
- 12DyerSubstituted forShelveyat 59'minutes
- 20De Guzmán
- 24Pozuelo MeleroSubstituted forVázquez Garcíaat 90+3'minutes
- 14LamahSubstituted forTiendalliat 86'minutes
- 26Vázquez García
- Andre Marriner
- Shots on Target
Second Half ends, Fulham 1, Swansea City 2.
Wilfried Bony (Swansea City) wins a free kick on the left wing.
Foul by Steve Sidwell (Fulham).
Corner, Swansea City. Conceded by Steve Sidwell.
Substitution, Swansea City. Álvaro replaces Álex Pozuelo.
Ben Davies (Swansea City) wins a free kick in the defensive half.
Foul by Elsad Zverotic (Fulham).
Attempt saved. Darren Bent (Fulham) header from the centre of the box is saved in the bottom left corner. Assisted by Elsad Zverotic with a cross.
Jonjo Shelvey (Swansea City) wins a free kick in the defensive half.
Foul by Pajtim Kasami (Fulham).
Corner, Fulham. Conceded by Chico.
Foul by José Cañas (Swansea City).
Dimitar Berbatov (Fulham) wins a free kick in the defensive half.
Substitution, Swansea City. Dwight Tiendalli replaces Roland Lamah.
Substitution, Fulham. Adel Taarabt replaces Scott Parker.
Attempt blocked. Steve Sidwell (Fulham) right footed shot from more than 35 yards is blocked. Assisted by Scott Parker.
Goal! Fulham 1, Swansea City 2. Jonjo Shelvey (Swansea City) right footed shot from outside the box to the top right corner. Assisted by Roland Lamah.
Corner, Swansea City. Conceded by Steve Sidwell.
Substitution, Fulham. Alexander Kacaniklic replaces Bryan Ruiz.