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.
Dimitar 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.
With both sides enduring a poor run of form, Fulham having won just one in 11 and Swansea without a victory in four league games, 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.
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.
Swans keeper Gerhard Tremmel showed Stockdale the way with a decent stop from Ruiz's powerful half-volley but he was finally beaten a minute later in controversial fashion. Berbatov headed Kerim 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 but they were unable to find another way through.