Sunderland lifted themselves out of the relegation zone with just their third Premier League win of the season, as two late goals saw off 10-man Stoke.
The Potters had held firm despite Ryan Shawcross being sent off but Patrick van Aanholt and Duncan Watmore struck with two goals in the last 10 minutes.
Shawcross was dismissed for a second yellow after a foul on Watmore, who replaced the injured Jermain Defoe.
Stoke, who went closest through Jonathan Walters, slip to 12th.
Re-live Sunderland v Stoke City
Reaction to all of Saturday's games
More to follow.
Full Time Match ends, Sunderland 2, Stoke City 0.
90:00 +4:28 Full timeFull Time Second Half ends, Sunderland 2, Stoke City 0.
90:00 +1:44Corner, Stoke City. Conceded by Sebastián Coates.
90:00 +1:39Attempt blocked. Jonathan Walters (Stoke City) header from the left side of the six yard box is blocked. Assisted by Ibrahim Afellay.
90:00 +0:49Attempt missed. Adam Johnson (Sunderland) left footed shot from outside the box misses to the left. Assisted by Steven Fletcher.
88:35Foul by Erik Pieters (Stoke City).
88:35Duncan Watmore (Sunderland) wins a free kick in the defensive half.
87:31Attempt missed. Jeremain Lens (Sunderland) right footed shot from the left side of the box is high and wide to the right. Assisted by Duncan Watmore.
85:00 SubstitutionSubstitution Substitution, Stoke City. Ibrahim Afellay replaces Charlie Adam.
83:57 Goal scoredGoal! Goal! Sunderland 2, Stoke City 0. Duncan Watmore (Sunderland) right footed shot from the right side of the box to the bottom left corner.
81:19 Goal scoredGoal! Goal! Sunderland 1, Stoke City 0. Patrick van Aanholt (Sunderland) left footed shot from outside the box to the bottom right corner. Assisted by Adam Johnson following a set piece situation.
80:33 BookingBooking Erik Pieters (Stoke City) is shown the yellow card for a bad foul.
80:25Foul by Erik Pieters (Stoke City).
80:25Adam Johnson (Sunderland) wins a free kick in the attacking half.
79:12Corner, Sunderland. Conceded by Erik Pieters.
76:48Erik Pieters (Stoke City) wins a free kick in the defensive half.
76:48Foul by Duncan Watmore (Sunderland).
74:53Attempt missed. Jeremain Lens (Sunderland) right footed shot from outside the box is too high. Assisted by Adam Johnson.
73:26Foul by Mame Biram Diouf (Stoke City).
73:26Sebastián Coates (Sunderland) wins a free kick in the defensive half.
Substitution Substitution, Sunderland. Adam Johnson replaces John O'Shea.
69:12Attempt missed. DeAndre Yedlin (Sunderland) right footed shot from a difficult angle on the right is too high. Assisted by Lee Cattermole with a through ball.
64:17Attempt missed. Jeremain Lens (Sunderland) right footed shot from outside the box is high and wide to the right following a corner.
63:48Corner, Sunderland. Conceded by Geoff Cameron.
63:46Attempt blocked. Jeremain Lens (Sunderland) right footed shot from outside the box is blocked. Assisted by Yann M'Vila.
63:07 SubstitutionSubstitution Substitution, Stoke City. Mame Biram Diouf replaces Xherdan Shaqiri.
59:10Attempt saved. Glen Johnson (Stoke City) left footed shot from outside the box is saved in the bottom right corner.
58:39Attempt saved. Jonathan Walters (Stoke City) right footed shot from the right side of the box is saved in the top right corner. Assisted by Glen Johnson.
57:06Offside, Stoke City. Charlie Adam tries a through ball, but Jonathan Walters is caught offside.
55:32Corner, Sunderland. Conceded by Jack Butland.
55:28Attempt saved. Steven Fletcher (Sunderland) header from the centre of the box is saved in the top right corner. Assisted by Jeremain Lens with a cross.
55:15Attempt blocked. Jeremain Lens (Sunderland) right footed shot from the right side of the box is blocked. Assisted by Yann M'Vila.
55:01Corner, Sunderland. Conceded by Erik Pieters.
54:21Foul by Erik Pieters (Stoke City).
54:21Yann M'Vila (Sunderland) wins a free kick on the right wing.
54:16Attempt saved. Yann M'Vila (Sunderland) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Jeremain Lens.
53:24 SubstitutionSubstitution Substitution, Sunderland. Jeremain Lens replaces Sebastian Larsson because of an injury.
52:48Attempt missed. Yann M'Vila (Sunderland) right footed shot from outside the box misses to the right. Assisted by Steven Fletcher.
50:55Corner, Sunderland. Conceded by Erik Pieters.
50:11Attempt missed. Xherdan Shaqiri (Stoke City) left footed shot from outside the box is close, but misses to the right from a direct free kick.
49:51 SubstitutionSubstitution Substitution, Stoke City. Geoff Cameron replaces Bojan.
48:36Jonathan Walters (Stoke City) wins a free kick in the attacking half.
48:36Foul by Younes Kaboul (Sunderland).
48:03Attempt blocked. Yann M'Vila (Sunderland) right footed shot from outside the box is blocked.
46:42 DismissalDismissal Second yellow card to Ryan Shawcross (Stoke City) for a bad foul.
46:38Foul by Ryan Shawcross (Stoke City).
46:38Duncan Watmore (Sunderland) wins a free kick in the attacking half.
45:00Second Half begins Sunderland 0, Stoke City 0.
45:00 +2:40 Half timeHalf Time First Half ends, Sunderland 0, Stoke City 0.
45:00 +0:56Attempt missed. Charlie Adam (Stoke City) header from the left side of the six yard box is just a bit too high. Assisted by Bojan with a cross following a corner.
45:00 +0:28Corner, Stoke City. Conceded by DeAndre Yedlin.
44:19Corner, Stoke City. Conceded by Patrick van Aanholt.
42:27Attempt blocked. Patrick van Aanholt (Sunderland) left footed shot from outside the box is blocked.
41:11 BookingBooking Ryan Shawcross (Stoke City) is shown the yellow card for a bad foul.
41:08Foul by Ryan Shawcross (Stoke City).
41:08Steven Fletcher (Sunderland) wins a free kick in the attacking half.
39:59Corner, Sunderland. Conceded by Ryan Shawcross.
39:40Attempt blocked. Duncan Watmore (Sunderland) left footed shot from the right side of the box is blocked. Assisted by Costel Pantilimon.
39:06Offside, Stoke City. Xherdan Shaqiri tries a through ball, but Marko Arnautovic is caught offside.
38:00Corner, Sunderland. Conceded by Glen Johnson.
37:01Corner, Sunderland. Conceded by Erik Pieters.
35:21Corner, Stoke City. Conceded by DeAndre Yedlin.
34:02Bojan (Stoke City) wins a free kick on the right wing.
34:02Foul by Sebastian Larsson (Sunderland).
33:42Attempt blocked. Yann M'Vila (Sunderland) right footed shot from outside the box is blocked.
32:44 BookingBooking Charlie Adam (Stoke City) is shown the yellow card for a bad foul.
32:40Foul by Charlie Adam (Stoke City).
32:40Lee Cattermole (Sunderland) wins a free kick in the attacking half.
32:05Attempt saved. Jonathan Walters (Stoke City) right footed shot from very close range is saved in the centre of the goal. Assisted by Erik Pieters with a cross.
30:15 SubstitutionSubstitution Substitution, Sunderland. Duncan Watmore replaces Jermain Defoe because of an injury.
28:36Corner, Sunderland. Conceded by Erik Pieters.
27:09Corner, Stoke City. Conceded by DeAndre Yedlin.
25:12Attempt missed. Bojan (Stoke City) right footed shot from outside the box is high and wide to the right. Assisted by Charlie Adam.
22:20Delay over. They are ready to continue.
21:21Delay in match Jermain Defoe (Sunderland) because of an injury.
19:02Charlie Adam (Stoke City) wins a free kick in the attacking half.
19:02Foul by Sebastian Larsson (Sunderland).
18:17Younes Kaboul (Sunderland) wins a free kick in the defensive half.
18:17Foul by Jonathan Walters (Stoke City).
17:35Attempt missed. Jermain Defoe (Sunderland) right footed shot from outside the box is close, but misses to the left. Assisted by Sebastian Larsson.
16:43Foul by Charlie Adam (Stoke City).
16:43Lee Cattermole (Sunderland) wins a free kick in the defensive half.
15:43Offside, Stoke City. Charlie Adam tries a through ball, but Jonathan Walters is caught offside.
11:28Foul by Ryan Shawcross (Stoke City).
11:28Jermain Defoe (Sunderland) wins a free kick in the defensive half.
7:44Attempt saved. Steven Fletcher (Sunderland) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Patrick van Aanholt.
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers