For the second game running, Sunderland were reduced to 10 men as Craig Gardner was sent off in the first half, but the hosts battled back gamely to inch another point closer to potential safety.
After a tentative opening, a trademark long throw from the visitors was partially dealt with, resulting in a corner. From there, Charlie Adam's delivery wasn't cleared, and Walters blasted home from inside the six-yard box.
As the hosts looked to get back on track, Danny Rose found Adam Johnson in space and the latter drove at the Stoke backline before being impeded by Dean Whitehead - for which the former Sunderland man was booked. Gardner took the resulting free kick, firing wide.
Moments later, Johnson received possession in a similar position and managed to manipulate space in which to shoot. Unfortunately, he too failed to test Asmir Begovic. The first half was littered with moments of the home side unable to keep hold of the ball, and frustrations bellowed around the Stadium of Light as James McClean scuffed a needless shot from long range. Whilst he only had Danny Graham ahead of him, simply recycling the ball would have enabled support to arrive.
Shortly after the half hour mark, Carlos Cuellar was booked for bodychecking Cameron Jerome, but he was not to be outdone by Gardner, who slid in high and late barely a minute later. Seb Larsson also found himself in Lee Mason's notebook for protesting the decision, and Steven N'Zonzi was also cautioned before the half came to a close.
With Sunderland's increasing by the minute, they started the second half positively; Johnson's driving run enabled him to shoot but he fired straight at Begovic. At the other end, Jerome had an effort from the edge of the area blocked as Sunderland's urgency threatened to open the game up.
Two Larsson set-pieces ultimately provided the breakthrough - the first, a corner that saw Whitehead clear the ball off the line after Cuellar headed the ball back across goal. The second found O'Shea who fired home just after the hour mark.
Another long throw from Ryan Shotton was again only half cleared, and with Whitehead free on the edge of the area he had the chance to put his side back in front, but fired straight at Simon Mignolet. The tit-for-tat nature of the game continued as Sunderland pressed forward. A searching pass was just too long for McClean who had room to sprint into, before Rose - one of the most likely Sunderland players to find an opening - cut inside and struck the post with a right-footed effort.
Stoke, despite failing to make their extra man count in the second half, went close shortly afterwards as another corner was not sufficiently dealt with and N'Zonzi hooked a shot over the bar. Another former Sunderland man, Kenwyne Jones, entered the fray in added time but aside from set-pieces neither side looked capable of creating any meaningful chances throughout.