David Stockdale endured a nightmare recall in goal for Fulham as he gifted Swansea a 2-1 victory at Craven Cottage and sucked his own side ever closer to the Premier League drop zone.
Stockdale, making his first top-flight appearance for 11 months in place of the injured Mark Schwarzer, handed late Christmas presents to Danny Graham and Jonathan de Guzman in a shocking all-round display in front of England boss Roy Hodgson.
Fulham pulled a goal back in controversial fashion in a wet and windy rally when Bryan Ruiz's shot went in off an offside Sascha Riether but it was not enough to stop them slipping a defeat which leaves them four points above the drop zone.
Swansea stayed 10 clear of danger, with Graham and De Guzman's goals proving there was life beyond injured top scorer Michu.
The punishing festive schedule seemed to be behind both managers' decisions to ring the changes, Fulham making six and Swansea seven.
Each were without their first-choice keepers, with Swansea resting Michel Vorm and recalling Gerhard Tremmel.
While they were also missing Michu, Fulham were able to call upon the fit-again Ruiz, something that would have been more of a relief to Dimitar Berbatov than anyone.
Berbatov may have been poking fun when exposing his 'Keep calm and pass me the ball' T-shirt in the Boxing Day draw with Southampton.
But he clearly missed the only other player in the squad to hold a candle to him and it did not take the pair long to rekindle their understanding.
Indeed, Berbatov probably should have scored in the 10th minute when he outmuscled his marker six yards out only to volley Ruiz's corner into the ground and over the bar.
Otherwise, both teams looked like sides on a poor run of form, Fulham having won just one in 11 and Swansea without a victory in four league games.
So it was no surprise to see the opening goal come from a mistake in the 19th minute.
Nathan Dyer scuffed a deflected cross from the right towards the corner of Stockdale's goal which should have been easily pushed wide by the keeper, who was last week recalled from his loan at Hull.
Instead, he slapped the ball straight back into danger, Graham doing well to readjust and hook the ball back into the net.
Berbatov tried to inspire an equaliser but Kerim Frei blasted his lay-off wide from a tight angle before Ruiz fired a free-kick just off target and volleyed another Berbatov knockdown over the bar.
Giorgos Karagounis was booked for an ugly sliding leg sweep on Dyer that could even have drawn worse punishment.
Tremmel palmed a Ruiz curler to safety before the interval, during which Swansea sent on Ki Sung-Yueng for Wayne Routledge.
Ruiz almost got the better of the motionless Swans keeper when his latest free-kick curled inches wide.
But Stockdale produced another howler in the 52nd minute when he cleared the ball straight against Brede Hangeland and it rebounded for Pablo Hernandez to square for De Guzman to sidefoot home.
Tremmel showed Stockdale the way three minutes with a decent stop from Ruiz's powerful half-volley but he was finally beaten a minute later in controversial fashion.
Berbatov headed Frei's cross against the bar and his follow-up was blocked straight to Ruiz, whose point-blank finish was going in but hit an offside Riether on the way.
Tremmel's appeals fell on deaf ears and suddenly it was all Fulham.
The visitors sent on Ben Davies for Hernandez in what was now driving rain at Craven Cottage.
The wet surface helped Karagounis force a spill from Tremmel straight to Berbatov but this time the offside flag was rightly raised as he slotted home.
Fulham finally made a change of their own with just under 15 minutes remaining, Hugo Rodallega replacing Ashkan Dejagah.
Graham forced another uncomfortable save from Stockdale on the break and Kemy Agustien was booked for upending Rodallega.
Agustien was immediately withdrawn for Leon Britton, with Fulham sending on Philippe Senderos for Frei.
The home side's misery was duly complete when Berbatov sent a stoppage-time header off target.