Match ends, Sunderland 1, Stoke City 0.
Sunderland moved out of the Premier League bottom three for the first time since August with a narrow win over 10-man Stoke.
Adam Johnson tapped home from close range after 17 minutes when Stoke goalkeeper Asmir Begovic spilled a Sebastian Larsson shot.
Steven N'Zonzi was sent off for a second bookable offence eight minutes into the second half.
Stoke fought back with Ryan Shawcross hitting the bar, but the hosts held on.
The result saw Sunderland move above West Ham and Fulham and to within a point of Mark Hughes' side, although the Stoke manager may take some comfort from the way his players rallied after N'Zonzi's dismissal.
Ultimately, the Potters paid for their slow start as they allowed the hosts - buoyed by their recent Capital One Cup semi-final success over Manchester United - to dictate terms.
Sunderland's early fluency belied their position in the table, and they were good value for the lead after Johnson seized on Begovic's mistake to score from a tight angle.
But Sunderland's bright start petered out as Stoke gradually imposed themselves, and the home side were grateful for keeper Vito Mannone ensuring they were still ahead at half-time.
The Italian recovered after spilling the ball in a collision with captain John O'Shea to block Peter Crouch twice in a matter of seconds, then stopped a diving header from Shawcross.
Stoke continued to impress after the break until N'Zonzi received a second yellow card from referee Robert Madley after the midfielder pulled back Jozy Altidore just outside the area.
Sunderland immediately began to make their numerical advantage count, Altidore drawing a fine save with his feet from Begovic.
Johnson came close to adding a second when he rolled a shot across the goal and just wide of the far post, while Begovic pushed a long-range effort from Larsson wide.
However, Stoke increased the pressure on Sunderland and debutant Peter Odemwingie, who signed from Cardiff this week, wasted a chance when he shot straight at Mannone.
Shawcross came the closest to equalising after a sustained spell of pressure from the away side, hitting the bar with a looping header in the closing minutes.
Although Sunderland's Wes Brown flashed a header wide late on, Stoke's late dominance was such that Black Cats manager Gus Poyet looked relieved at the final whistle.
Sunderland coach Charlie Oatway:
"We were under no illusions that they would have spells where they would put us under pressure, but we held out for the majority of it. We knew they would throw everything at us, and men had to be men.
"We played a little bit into their hands - we did not look after the ball as well as we did in the first 25 minutes - but there was so much pressure for us to get out of the relegation zone that we desperate to hold out.
"Thankfully we got the points and hopefully long may it continue that we keep to pick up more points."
Stoke manager Mark Hughes:
"I thought the lads were absolutely magnificent today. Sunderland had 10 to 15 minutes in the first half when we conceded and they had a lot of possession, but I thought from that point onwards we were magnificent, and with 10 men.
"The effort and desire to try to get back on level terms was outstanding. Unfortunately at the moment we are getting decisions against us, and we are disappointed again by the referee's decision.
"We feel the lad went down too easily - it is difficult for referees, he has bought it. But it is very harsh on us."
Check out photos from Wednesday's Premier League matches on the BBC Sport Facebook page.
- 2BardsleyBooked at 45minsSubstituted forCelustkaat 45'minutes
- 4Ki Sung-yueng
- 17AltidoreSubstituted forFletcherat 67'minutes
- 11JohnsonSubstituted forGardnerat 87'minutes
- 31BoriniBooked at 79mins
- 12WilsonBooked at 50mins
- 9OdemwingieSubstituted forGuidettiat 90+1'minutes
- 15N'ZonziBooked at 53mins
- 25CrouchSubstituted forWaltersat 65'minutes
- 16AdamBooked at 40mins
- 24AssaidiSubstituted forArnautovicat 72'minutes
- Robert Madley
- Shots on Target
Second Half ends, Sunderland 1, Stoke City 0.
Corner, Sunderland. Conceded by Asmir Begovic.
Attempt saved. Jack Colback (Sunderland) left footed shot from the left side of the box is saved in the top left corner. Assisted by Craig Gardner.
Foul by John Guidetti (Stoke City).
Jack Colback (Sunderland) wins a free kick in the defensive half.
Attempt missed. Marc Wilson (Stoke City) header from the centre of the box is too high. Assisted by Glenn Whelan with a cross following a corner.
Substitution, Stoke City. John Guidetti replaces Peter Odemwingie.
Corner, Stoke City. Conceded by Wes Brown.
Peter Odemwingie (Stoke City) wins a free kick in the attacking half.
Foul by Jack Colback (Sunderland).
Substitution, Sunderland. Craig Gardner replaces Adam Johnson.
Attempt missed. Wes Brown (Sunderland) header from very close range is close, but misses to the left. Assisted by Adam Johnson with a cross following a corner.
Corner, Sunderland. Conceded by Marc Wilson.
Attempt blocked. Fabio Borini (Sunderland) right footed shot from the right side of the box is blocked. Assisted by Ki Sung-Yueng.
Ryan Shawcross (Stoke City) hits the bar with a header from the centre of the box. Assisted by Geoff Cameron with a cross.
Erik Pieters (Stoke City) wins a free kick in the defensive half.
Foul by Adam Johnson (Sunderland).
Fabio Borini (Sunderland) is shown the yellow card for a bad foul.
Geoff Cameron (Stoke City) wins a free kick in the defensive half.