Wilfried Bony put the visitors ahead from the penalty spot on 34 minutes after he had been wrestled to the ground by Ryan Shawcross as the pair jostled for position as a corner came into the box.
Referee Michael Oliver then awarded another penalty nine minutes later after Victor Moses went down under a challenge from Angel Rangel and Charlie Adam made no mistake with his spot-kick.
After the break, both sides had chances before Walters won it for Stoke with 14 minutes remaining with a header from fellow substitute Oussama Assaidi’s cross.
Mark Hughes’ men made it back-to-back home wins in the league with the result as they moved up to 10th in the table, level on points with Garry Monk’s eighth-placed men, who have worryingly failed to win in the league since August.
Swansea put some decent passing moves together in the opening stages of the contest, with one seeing Wayne Routledge turn and play in Gylfi Sigurdsson, who miscued as he tried to go around Asmir Begovic and the ball went out of play.
An even better one moments later was started by Ki Sung-Yueng and when the ball came back to the South Korea international, he struck a shot with came back off Begovic’s legs. Stoke immediately raced up the other end and Adam drilled an effort wide.
As the hosts looked to get control of the game, Moses swung a delivery across the box and Peter Crouch tried to jump to meet it. He failed to make contact and appealed for a penalty, claiming his shirt had been held by Neil Taylor, but – on this occasion – nothing was given.
Around 10 minutes later, though, Oliver was convinced there had been an infringement when Shawcross and Bony got to grips with each other as a corner came into the Stoke box and the latter went to ground. The Potters skipper was booked, the penalty was given and Bony stepped up to calmly convert it, sending Begovic the wrong way.
But referee Oliver’s pointed to the spot once more less than ten minutes later when Stoke had been pressing once more, and Moses burst into the box from the left flank. He subsequently hit the deck as Rangel came in to challenge him and although it seemed the on-loan Chelsea winger might have gone down a little easily, Oliver saw it as a foul. Adam made no mistake with the spot-kick.
The home side looked eager to add another as the second half got under way, with Phil Bardsley lashing a wild effort off target and Adam shooting over from outside the box.
Moses then sent a corner bouncing across the face of goal and Crouch met it with his head at the back post but could not keep his effort down.
Soon after, a scramble in the Stoke area from a Swansea free-kick saw the ball come to Ki in front of goal, but Begovic dealt with his shot. Bony then, somewhat optimistically, went down in the box again as Marc Wilson marked him at a corner, with Oliver unmoved.
It appeared anyone’s game to win and it was the Potters who seized the moment with just under a quarter of an hour to go. Rangel gave the ball away, Stoke surged forward and Assaidi – on for Moses – crossed well to Walters, who directed a fine header past Fabianski.
Swansea pushed for a leveller at the end, but efforts from Ki, Bony and substitute Bafetimbi Gomis were unsuccessful as the Potters held on for a valuable three points.