With all the goals coming in an end-to-end first half, the American midfielder bagged his 17th league goal of the season and 23rd in all competitions with a superb free kick to open the scoring, before Phil Bardsley equalised with a wonderful shot from range.
Moussa Dembele hit the winner immediately afterwards, although his shot took a massive deflection off Michael Turner and may well be retrospectively called an own goal.
Both sides had their chances in the second half but neither could add to the tally, visiting substitute Fraizer Campbell missing two good chances to snatch a point.
The result means Fulham go above Liverpool into eighth, while Sunderland stay 11th with their heads well above water.
With both sides safe in mid-table and with little chance of a European slot, they would have been forgiven for going through the motions at a chilly, slippery Craven Cottage.
But they served up a holiday treat in an entertaining encounter, the first half particularly enjoyable as both sides carved out plenty of chances.
The Whites had the better of the play and the chances, Damien Duff worrying Bardsley on the right wing, the Irishman’s early cross just evading Pavel Pogrebnyak before a shot of his own was well saved by Simon Mignolet.
They took a deserved lead 12 minutes in, and it came in style: after Lee Cattermole caught Mahamadou Diarra on the edge of the Black Cats box, Dempsey stepped up to curl a magnificent free kick around the wall and into the top right.
The American's goal tally since arriving in England five years ago reads 1-6-8-9-13-23, the versatile attacking midfielder that rare breed of a player who has improved steadily and without interruption during his mid-late 20s.
Sunderland had been second best until that point but they responded to conceding admirably: Mark Schwarzer did well to deny Stephane Sessegnon after he sprung a weak offside trap as the visitors piled forward looking for an equaliser.
They almost conceded a second, Pogrebnyak denied a sure volleyed goal by an excellent block from Turner, but levelled soon afterwards - in some style too.
A fine passing move saw Cattermole slide a pass to Ji Dong-won on the edge of the box. The Korean, making only his second Premier League start, flicked it to Bardsley, who unleashed a fantastic long-range effort into the top right.
But dizzied by that spectacular leveller, Sunderland conceded immediately, losing the ball from the restart to Dembele, who raced from halfway to the edge of the box before releasing an outswinging shot that - probably heading wide - took a vital deflection off Turner to curl back inside the left-hand post.
Both sides had chances leading into the break, Duff hitting a low effort just wide with Craig Gardner drilling a free kick just past the bottom left corner.
The second half was similarly open, Fulham going close early on when Pogrebnyak’s finish was blocked by Turner and Dempsey had a curling shot cleared off the line by Jack Colback.
Sunderland were fading under the pressure, with Bardlsey suffering: goal aside, he was being given a torrid time by Duff, who again got the better of him before firing a stinging drive that Mignolet kept out.
Another man suffering since his part in Sunderland’s goal was Ji, who was replaced on the hour mark by Nicklas Bendtner, benched after recovering from a foot injury.
His entrance marked a lull in the match as Fulham started to sit deeper: Sunderland’s possession had limited impact, the best opportunity falling to Fulham on the break as Dembele was denied by a fine Mignolet stop after good play by Pogrebnyak and Dempsey.
Bendtner was making an impact though, curling a shot high and wide from the left after a Sessegnon-led charge, and sending fellow substitute Campbell one-on-one with an imperious flick-on: the former Manchester United forward dragged his finish wide of the far post, a bad miss by any standards.
Fulham were still in control though, Duff continuing to cause problems with overlapping full-back Stephen Kelly forcing a save from Mignolet.
Dempsey was almost handed a second on a plate by the otherwise excellent Turner, whose poor header played him through: John O’Shea calmly mopped up though.
Dembele almost got a second goal when he ran from halfway once more, but this time Mignolet was equal to his finish, as was Schwarzer to Campbell’s after Sessegnon played him in at the death.
But Fulham rode that late spell of pressure to close out victory and move on to 52 points, one shy of seventh-placed Everton with just the season finale at Tottenham remaining.