Sunderland produced a rousing second-half display to record only their second Premier League victory of the season at the expense of 10-man Fulham.
The dismissal of Brede Hangeland after 30 minutes proved the turning point.
Steven Fletcher poked in to put Sunderland ahead just after half-time, only for Fulham to level as substitute Mladen Petric netted from close range.
But Sunderland hit back through Carlos Cuellar and a spectacular strike from Stephane Sessegnon to seal victory.
Fulham see red
Brede Hangeland picked up Fulham's first red card in 50 Premier League matches.
Steven Fletcher has now scored six of Sunderland's 10 Premier League goals
Stephane Sessegnon scored his first goal in 19 league matches
This was a vital win for Martin O'Neill's side. The pressure had begun to grow after a run of just one victory in 18 Premier League matches.
But if the supporters had been restless before kick-off, all that was forgotten at the final whistle as Sunderland's travelling support celebrated their first away win in the league since February.
The opening 45 minutes had been a demonstration of why the Black Cats have struggled so badly in recent times.
O'Neill's side lacked cohesion, confidence and sustained threat; they were insipid not inventive. While they desperately needed tempo, they produced only tedium.
For the opening half-hour, Fulham dictated play with Dimitar Berbatov in the thick of the action, heading one chance over after four minutes and conjuring up another for Steve Sidwell, only for the midfielder to shoot tamely at Sunderland goalkeeper Simon Mignolet.
O'Neill relieved by 'big win'
But then came the afternoon's defining moment as Hangeland was sent off for a two-footed challenge on Lee Cattermole. Referee Lee Probert produced a red card almost immediately - although the actual contact with the Sunderland man was minimal, the challenge was reckless at best.
It was an opportunity for Sunderland, but for the remainder of the half they played like a side burdened by a new sense of expectation. This was a chance they simply could not afford to pass up.
To their credit, O'Neill's side emerged from the interval with more intent and a move more incisive than anything they had managed before the break produced the opening goal.
The visitors' breakthrough actually came from Fulham's best chance of the match, as John Arne Riise's deflected shot rebounded from the underside of the crossbar and set Sunderland in motion.
Adam Johnson raced away down the left, before curling a delightful pass into the path of Fletcher at the edge of the box. His first touch controlled the ball, his second nudged it beyond Fulham goalkeeper Mark Schwarzer and into the net.
Fulham's troubles increased moments later when Bryan Ruiz, having tweaked his hamstring, limped off to be replaced by Petric.
Sunderland immediately sought to press home their advantage and were only denied by Schwarzer, who threw himself low to his right to tip Johnson's curling shot to safety.
Jol disappointed to lose unbeaten run
And yet the home support roused their side, as Damien Duff surged forward, took advantage of a fortunate deflection off Hugo Rodallega, and squared the ball for Petric to fire in from six yards. But crucially the Croatian striker injured himself in the act of scoring and, with Fulham briefly reduced to nine men, Sunderland struck again.
Johnson's left-wing corner was met by Cuellar, who rose above Sidwell to head firmly beyond Schwarzer.
Five minutes later, Sunderland added a third following another swift counter-attack. This time Johnson fed Sessegnon whose fierce curling shot found the corner of the net from 25 yards.
The final whistle was greeted with a pump of the fist by O'Neill. The Sunderland manager's relief was palpable.
Aaron Hughes takes a shot. Simon Mignolet makes a comfortable save.
Outswinging corner taken left-footed by John Arne Riise from the left by-line, clearance made by John O'Shea.
Mladen Petric takes a shot. David Vaughan gets a block in.
Aaron Hughes sends in a cross, John O'Shea manages to make a clearance.
Steve Sidwell takes a shot. Lee Cattermole gets a block in.
James McClean takes a shot. Comfortable save by Mark Schwarzer.
John Arne Riise crosses the ball, John O'Shea makes a clearance.
John Arne Riise delivers the ball from the free kick left-footed from left channel, clearance made by Carlos Cuellar.
Booking Lee Cattermole is given a yellow card.
Foul by Lee Cattermole on Damien Duff, free kick awarded.
Corner taken by Sascha Riether, Phil Bardsley makes a clearance.
Mladen Petric takes a shot. Save made by Simon Mignolet.
Foul by Steve Sidwell on David Vaughan, free kick awarded. Phil Bardsley restarts play with the free kick.
Hugo Rodallega produces a right-footed shot from just outside the penalty box that misses to the left of the target.
Substitution (Sunderland) makes a substitution, with David Vaughan coming on for Jack Colback.
Shot from outside the box by James McClean misses to the left of the target.
Steve Sidwell takes a shot. Simon Mignolet makes a save.
The offside flag is raised against Steven Fletcher. Steve Sidwell takes the free kick.
Hugo Rodallega has a direct shot on goal from the free kick.
Booking John O'Shea is shown a yellow card for unsporting behaviour.
John O'Shea concedes a free kick for a foul on Hugo Rodallega.
A cross is delivered by Dimitar Berbatov, clearance by John O'Shea.
Foul by Lee Cattermole on Hugo Rodallega, free kick awarded. John Arne Riise delivers the ball from the free kick left-footed from left channel, Carlos Cuellar makes a clearance.
Substitution Sebastian Larsson goes off and James McClean comes on.
Assist on the goal came from Steven Fletcher.
69:06 Goal scored
Goal! - Stephane Sessegnon - Fulham 1 - 3 Sunderland Stephane Sessegnon gets on the score sheet with a fantastic goal from outside the box to the top right corner of the goal. Fulham 1-3 Sunderland.
John O'Shea challenges Mladen Petric unfairly and gives away a free kick. Mladen Petric produces a strike on goal direct from the free kick. Corner from the left by-line taken by Hugo Rodallega, John O'Shea makes a clearance.
Steve Sidwell takes a shot. Simon Mignolet makes a comfortable save.
Assist on the goal came from Adam Johnson.
64:01 Goal scored
Goal! - Carlos Cuellar - Fulham 1 - 2 Sunderland Carlos Cuellar finds the back of the net with a headed goal from inside the box. Fulham 1-2 Sunderland.
Corner taken by Adam Johnson,
Adam Johnson sends in a cross, clearance made by Aaron Hughes.
Assist on the goal came from Damien Duff.
61:40 Goal scored
Goal! - Mladen Petric - Fulham 1 - 1 Sunderland Mladen Petric scores a goal from inside the six-yard box high into the middle of the goal. Fulham 1-1 Sunderland.
Adam Johnson takes a shot. Save by Mark Schwarzer. Corner taken right-footed by Sebastian Larsson from the left by-line, comfortable save by Mark Schwarzer.
Effort on goal by Mladen Petric from inside the penalty area goes harmlessly over the bar.
Free kick taken by Mark Schwarzer.
Substitution Bryan Ruiz goes off and Mladen Petric comes on.
Booking Adam Johnson shown a yellow card.
The official flags Adam Johnson offside.
The assistant referee flags for offside against John Arne Riise. Simon Mignolet restarts play with the free kick.
Free kick awarded for a foul by Lee Cattermole on Damien Duff. Direct free kick taken by Sascha Riether.
Danny Rose takes a shot. Blocked by Damien Duff. Centre by Adam Johnson, Aaron Hughes makes a clearance.
Jack Colback restarts play with the free kick.
Booking Steve Sidwell shown a yellow card.
Steve Sidwell challenges Lee Cattermole unfairly and gives away a free kick.
Unfair challenge on Stephane Sessegnon by Damien Duff results in a free kick. Simon Mignolet restarts play with the free kick.
John Arne Riise fouled by Steven Fletcher, the ref awards a free kick. Steve Sidwell takes the direct free kick.
Centre by Sascha Riether.
Adam Johnson provided the assist for the goal.
49:33 Goal scored
Goal! - Steven Fletcher - Fulham 0 - 1 Sunderland A goal is scored by Steven Fletcher from inside the penalty area to the bottom left corner of the goal. Fulham 0-1 Sunderland.
John Arne Riise takes a shot. Blocked by Phil Bardsley.
The ball is crossed by John Arne Riise, clearance made by John O'Shea.
The game restarts for the second half.
45:00 +2:23 Half time
Half Time The whistle is blown to end the first half.
Lee Cattermole gives away a free kick for an unfair challenge on Dimitar Berbatov. Free kick taken by John Arne Riise.
Adam Johnson takes a shot. Steven Fletcher takes a shot. Comfortable save by Mark Schwarzer.
A cross is delivered by Phil Bardsley, clearance by Steve Sidwell.
Danny Rose sends in a cross.
Shot by Dimitar Berbatov from deep inside the penalty area misses to the left of the target.
Steve Sidwell fouled by Carlos Cuellar, the ref awards a free kick. John Arne Riise fires a strike on goal direct from the free kick, blocked by Phil Bardsley.
A cross is delivered by Stephane Sessegnon, Sascha Riether gets a block in.
Foul by Philippe Senderos on Stephane Sessegnon, free kick awarded. John O'Shea takes the direct free kick.
Adam Johnson crosses the ball, clearance made by Philippe Senderos.
Handball decision goes against Damien Duff. Danny Rose restarts play with the free kick.
Foul by Stephane Sessegnon on Bryan Ruiz, free kick awarded. John Arne Riise takes the direct free kick.
Free kick awarded for a foul by Phil Bardsley on Damien Duff. Free kick taken by John Arne Riise.
Inswinging corner taken left-footed by Adam Johnson from the right by-line to the near post, Bryan Ruiz manages to make a clearance.
Substitution Giorgos Karagounis leaves the field to be replaced by Philippe Senderos.
Steven Fletcher takes a shot. Blocked by Steve Sidwell.
Dimitar Berbatov takes a shot. Save made by Simon Mignolet.
A cross is delivered by Adam Johnson, comfortable save by Mark Schwarzer.
Phil Bardsley takes the direct free kick.
Dismissal Brede Hangeland sent from the field by the ref for serious foul play.
Brede Hangeland concedes a free kick for a foul on Lee Cattermole.
The referee blows for offside against Damien Duff. Simon Mignolet restarts play with the free kick.
Direct free kick taken by Phil Bardsley.
Substitution Alex Kacaniklic leaves the field to be replaced by Hugo Rodallega.
Free kick awarded for an unfair challenge on Steven Fletcher by Brede Hangeland.
Free kick awarded for a foul by Stephane Sessegnon on Bryan Ruiz. Direct free kick taken by Steve Sidwell.
Dimitar Berbatov gives away a free kick for an unfair challenge on John O'Shea. Phil Bardsley takes the free kick.
The ball is sent over by Sebastian Larsson, clearance by Aaron Hughes.
The ball is crossed by John Arne Riise, clearance by Carlos Cuellar. Steve Sidwell takes a shot. Comfortable save by Simon Mignolet.
Centre by Alex Kacaniklic.
The assistant referee signals for offside against Dimitar Berbatov. Simon Mignolet takes the indirect free kick.
The referee blows for offside. Free kick taken by Simon Mignolet.
Damien Duff delivers the ball, Carlos Cuellar manages to make a clearance.
Adam Johnson takes a inswinging corner.
Sascha Riether produces a cross, Danny Rose gets a block in. Inswinging corner taken by Bryan Ruiz from the right by-line played to the near post, clearance made by Phil Bardsley.
The ball is crossed by Steve Sidwell, Dimitar Berbatov takes a shot. Save made by Simon Mignolet.
Adam Johnson fouled by Sascha Riether, the ref awards a free kick. Direct free kick taken by Jack Colback. Shot by Stephane Sessegnon from outside the box goes over the net.
Steve Sidwell concedes a free kick for a foul on Jack Colback. Direct free kick taken by Jack Colback.
A cross is delivered by John Arne Riise, John O'Shea makes a clearance.
Danny Rose challenges Damien Duff unfairly and gives away a free kick. Steve Sidwell takes the direct free kick.
Steve Sidwell fouled by Jack Colback, the ref awards a free kick. Steve Sidwell takes the direct free kick.
Sebastian Larsson takes a shot. Save made by Mark Schwarzer.
The ball is sent over by Damien Duff, Headed effort from inside the area by Dimitar Berbatov misses to the left of the target.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.