Match ends, Derby County 1, Sunderland 4.
Sunderland exploited defensive errors by Derby to win at Pride Park and move off the bottom of the Championship.
George Honeyman's shot deflected in off Craig Forsyth for the opener, before Ashley Fletcher pounced on a loose Richard Keogh pass to make it 2-0.
Matej Vydra's half-volleyed finish reduced the deficit before half-time.
But Aiden McGeady's penalty restored the two-goal lead after Forsyth fouled Lynden Gooch, and John O'Shea poked in a fourth after a goalmouth scramble.
The veteran defender's first club goal for more than four years helped Sunderland move within three points of safety with seven matches remaining.
It was only the second victory of 2018 for Chris Coleman's side, a result which ended a winless run of 10 games and took them above Burton, who lost to Cardiff earlier on Friday.
Fifth-placed Derby have now gone eight games without a win and, having been second in the Championship at the start of February, they are only inside the top six on goal difference.
They have a game in hand on many of their nearest challengers, but their dip in form and the manner of their defeat by the Black Cats will be of huge concern.
All four Sunderland goals were avoidable and the visitors could had more, but Fletcher and Paddy McNair hit the post and bar respectively.
Derby County boss Gary Rowett:
"Probably in six years of management that's been the worst 90 minutes I've had to sit and watch. I'm not going to discredit Sunderland in any way but all four goals were self-inflicted.
"I've asked the fans to get behind the players all week and I thought they did that but if I'm being honest the players didn't deserve it. I said to them I've got no problem being honest with what I think the game was but what I think some of the players need to do is be honest with themselves.
"I'll be the first one to criticise the people that suggest we haven't got the bottle when the chips are down but after tonight I'm questioning that myself."
Sunderland manager Chris Coleman:
"It was a superb performance and very important because of where we've been in the last nine or 10 games which haven't been good enough.
"So the performance was huge for us. Now Monday is a big test for us because we play with fear at home and we've got to get over that. We haven't won back-to-back games all season so it's a big challenge for us and a big opportunity.
"We are running out of opportunities but we've given ourselves a chance and we've got to capitalise on that."
- 34ThorneSubstituted forNugentat 58'minutes
- 15JohnsonBooked at 90mins
- 23VydraBooked at 84mins
- 10LawrenceSubstituted forPalmerat 45'minutes
- 32JeromeSubstituted forLedleyat 83'minutes
- 22LoveBooked at 63mins
- 23KonéBooked at 59mins
- 16O'SheaBooked at 72mins
- 3OviedoSubstituted forMatthewsat 81'minutes
- 6CattermoleBooked at 67mins
- 27GoochSubstituted forMajaat 90+1'minutes
- 4McNairSubstituted forWilsonat 78'minutes
- 11Lua Lua
- James Linington
- Shots on Target
Second Half ends, Derby County 1, Sunderland 4.
Foul by Andreas Weimann (Derby County).
Adam Matthews (Sunderland) wins a free kick in the defensive half.
Bradley Johnson (Derby County) is shown the yellow card for a bad foul.
Foul by Bradley Johnson (Derby County).
Josh Maja (Sunderland) wins a free kick in the attacking half.
Substitution, Sunderland. Josh Maja replaces Lynden Gooch because of an injury.
Foul by Craig Forsyth (Derby County).
Lynden Gooch (Sunderland) wins a free kick on the right wing.
Foul by Bradley Johnson (Derby County).
Marc Wilson (Sunderland) wins a free kick in the defensive half.
Offside, Derby County. Richard Keogh tries a through ball, but David Nugent is caught offside.
Matej Vydra (Derby County) is shown the yellow card for a bad foul.
Foul by Matej Vydra (Derby County).
Aiden McGeady (Sunderland) wins a free kick in the defensive half.
Substitution, Derby County. Joe Ledley replaces Cameron Jerome.
Corner, Derby County. Conceded by Marc Wilson.
Attempt blocked. Bradley Johnson (Derby County) left footed shot from outside the box is blocked. Assisted by Andreas Weimann.
Substitution, Sunderland. Adam Matthews replaces Bryan Oviedo.