Charlie Adam's second-half strike put Stoke on the brink of Premier League safety and left opponents Norwich facing a nervy end to the season.
The Scot latched on to a Peter Crouch flick and finished well to seal the Potters' third league win of 2013.
Crouch missed a good chance to extend the lead, but the hosts held on easily against a toothless Canaries attack.
The win moves Stoke on to 40 points, while Norwich remain on 38 points - six points clear of the relegation zone.
Tony Pulis's direct playing style has been often criticised, especially as results have faltered in a poor 2013, but it was a classic route-one move that brought his side a precious win.
Adam's first goal since November came courtesy of a Ryan Shawcross long ball from the back, and the Potters doggedly secured three points which should guarantee them a sixth successive season in the top flight.
For Norwich boss Chris Hughton, though, the spectre of the drop still looms after a poor display in which they failed to seriously trouble Stoke goalkeeper Asmir Begovic.
These two sides have followed a similar trajectory this season, with excellent pre-Christmas form being followed by dramatic nosedives since the turn of the year, but Stoke become the first to reach the 40-point mark.
"Does this secure another season in the Premier League for Stoke City? It was such a tense game, and Norwich didn't really deserve anything from it."
It was an emotional day for the home fans, who held a minute's applause in the 42nd minute for former player Paul Ware following his death this week at the age of 42.
It was also a tense day for the Potters supporters, who had previously seen only one home win since the start of the year.
The first half was a nervy and largely forgettable affair, with the only clear-cut chance falling early on to Cameron Jerome whose powerful close-range volley hit his team-mate Steven Nzonzi on the line.
But the game sprang to life within moments of the restart as Stoke took the lead with a textbook up-and-under.
A long ball from defence was flicked on by Peter Crouch into the path of Adam, who took a touch with his head before firing crisply past Mark Bunn from close range.
Crouch should have doubled the lead 10 minutes later, but he contrived to swing at thin air after Adam teed him up in the six-yard box with an inviting low cross.
Nzonzi wasted another opportunity, opting to shoot from a tight angle with team-mates waiting in the box, and the midfielder then saw a fierce shot parried by Bunn.
Fortunately for the Potters, Norwich mustered precious little in response - an injury-time header from Kei Kamara that sailed over the bar being the closest they came to an equaliser.
But with home games coming up against Aston Villa and West Brom, the Canaries' destiny is still very much in their own hands.
Stoke City manager Tony Pulis:
"We deserved to win today, we created more opportunities. The three points are vital because we have tough games coming up.
"Our first challenge is always to stay in the Premier League, anything else is a bonus.
"A sixth successive Premier League season would be a great achievement for a club that a few years ago was a mid-table Championship side."
Norwich City manager Chris Hughton:
"We were in good form coming into the game, but we came up against a Stoke side that were back to their most direct.
"I thought we dealt with that very well, but we didn't do enough to win the game.
"We've got two home games now, which I'd like to think helps. But it's a nervy part of the season."
- 01 Begovic
- 04 Huth
- 17 Shawcross
- 28 Wilkinson (Cameron - 61' )
- 30 Shotton
- 06 Whelan (Whitehead - 65' )
- 15 Nzonzi Booked
- 16 Adam
- 19 Walters Booked
- 25 Crouch Booked
- 33 Jerome Booked (Etherington - 79' )
- 29 Sorensen
- 02 Cameron
- 18 Whitehead
- 21 Kightly
- 26 Etherington
- 09 Jones
- 10 Owen
- 28 Bunn
- 02 R Martin
- 03 Whittaker
- 05 Bassong (Pilkington - 86' )
- 24 R Bennett
- 04 Johnson Booked
- 07 Snodgrass (E Bennett - 74' )
- 08 Howson
- 27 Tettey (Hoolahan - 67' )
- 09 Holt Booked
- 16 Kamara
- 42 Camp
- 18 Garrido
- 20 Barnett
- 12 Pilkington
- 14 Hoolahan
- 17 E Bennett
- 19 Becchio
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +4:38
Unfair challenge on Ryan Shawcross by Kei Kamara results in a free kick. Asmir Begovic restarts play with the free kick.90:00 +4:38 Booking
Booking Jonathan Walters goes into the book.90:00 +2:46
Header from deep inside the area by Kei Kamara goes over the bar.90:00 +1:29
Short corner worked by Charlie Adam.89:47 Booking
Booking Booking for Bradley Johnson.85:15 Substitution
Substitution Anthony Pilkington is brought on as a substitute for Sebastien Bassong.85:15
The referee blows for offside against Jonathan Walters. Mark Bunn restarts play with the free kick.83:51
Steven Nzonzi takes a shot. Save made by Mark Bunn. The assistant referee signals for offside against Peter Crouch. Mark Bunn takes the indirect free kick.83:13
Geoff Cameron gives away a free kick for an unfair challenge on Grant Holt. Direct free kick taken by Steven Whittaker.80:04
Grant Holt gives away a free kick for an unfair challenge on Robert Huth. Free kick taken by Asmir Begovic.79:22
Shot from just outside the area by Charlie Adam goes over the bar.77:51 Substitution
Substitution Cameron Jerome goes off and Matthew Etherington comes on.77:51
Cameron Jerome is ruled offside. Ryan Bennett takes the direct free kick.76:07
Dean Whitehead gives away a free kick for an unfair challenge on Wes Hoolahan. Wes Hoolahan takes the free kick. Elliott Bennett has shot on goal from just outside the box which goes wide of the right-hand upright.73:50 Substitution
Substitution Elliott Bennett comes on in place of Robert Snodgrass.71:46
Free kick awarded for a foul by Cameron Jerome on Sebastien Bassong. Indirect free kick taken by Mark Bunn.68:51
Effort from the edge of the box by Steven Nzonzi goes wide of the right-hand upright.67:51
Free kick awarded for an unfair challenge on Robert Snodgrass by Jonathan Walters. The free kick is delivered left-footed by Robert Snodgrass from right wing, save by Asmir Begovic.66:52
Russell Martin takes the indirect free kick.
Substitution Wes Hoolahan joins the action as a substitute, replacing Alexander Tettey.66:52
Dean Whitehead challenges Robert Snodgrass unfairly and gives away a free kick.64:41 Substitution
Substitution Dean Whitehead replaces Glenn Whelan.63:29
Unfair challenge on Grant Holt by Robert Huth results in a free kick. Free kick crossed by Robert Snodgrass.62:58
Effort on goal by Cameron Jerome from just inside the box goes harmlessly over the target.62:20
The ball is delivered by Geoff Cameron.61:40
The referee blows for offside. Mark Bunn takes the free kick.60:44 Substitution
Substitution Andy Wilkinson goes off and Geoff Cameron comes on.57:13
Bradley Johnson gives away a free kick for an unfair challenge on Charlie Adam. Free kick crossed right-footed by Charlie Adam from right channel, save by Mark Bunn.52:08
Robert Snodgrass is ruled offside. Asmir Begovic takes the free kick.51:47
Steven Nzonzi concedes a free kick for a foul on Kei Kamara. Bradley Johnson takes the direct free kick.51:01
Jonathan Howson crosses the ball, comfortable save by Asmir Begovic.47:19
Charlie Adam has an effort at goal from just inside the box that misses to the right of the goal.45:51
Assist on the goal came from Peter Crouch.45:51 Goal scored
Goal! - Charlie Adam - Stoke 1 - 0 Norwich Goal scored by Charlie Adam from close in low into the middle of the goal. Stoke 1-0 Norwich.45:01
The second half begins.45:00 +1:59 Half time
Half Time It is the end of the first-half.44:02
Centre by Grant Holt, Asmir Begovic makes a save.41:44
Corner taken by Glenn Whelan, clearance made by Grant Holt.39:37
Mark Bunn restarts play with the free kick.39:37 Booking
Booking Peter Crouch booked for unsporting behaviour.39:28
Alexander Tettey fouled by Peter Crouch, the ref awards a free kick.37:27
Free kick taken by Asmir Begovic.37:27 Booking
Booking Grant Holt receives a yellow card.37:21
Grant Holt gives away a free kick for an unfair challenge on Robert Huth.35:35
The ball is sent over by Ryan Shotton, Sebastien Bassong manages to make a clearance.32:04
A cross is delivered by Robert Snodgrass, clearance made by Ryan Shotton.30:44
Free kick taken by Mark Bunn.30:44 Booking
Booking Cameron Jerome is shown a yellow card.29:52
Cameron Jerome challenges Mark Bunn unfairly and gives away a free kick.27:52
Shot on goal by Kei Kamara from just inside the area goes over the target.27:26
Outswinging corner taken left-footed by Robert Snodgrass, Ryan Shawcross makes a clearance.27:00
Corner taken by Robert Snodgrass from the left by-line, Robert Huth manages to make a clearance.25:50
Free kick taken by Mark Bunn.25:50 Booking
Booking Steven Nzonzi is cautioned by the ref for unsporting behaviour.25:33
Free kick awarded for a foul by Steven Nzonzi on Kei Kamara.24:06
Corner taken by Glenn Whelan from the left by-line played to the near post, Robert Huth produces a header from deep inside the six-yard box that clears the bar.23:42
Handball decision goes against Grant Holt. Free kick taken by Robert Huth.21:36
Corner taken by Charlie Adam from the right by-line, Shot by Cameron Jerome. Save by Mark Bunn.14:21
Peter Crouch takes a shot. Save made by Mark Bunn.13:40
Free kick awarded for a foul by Grant Holt on Ryan Shotton. Ryan Shawcross takes the direct free kick.10:51
Foul by Steven Whittaker on Charlie Adam, free kick awarded. Free kick crossed right-footed by Glenn Whelan from right channel, save by Mark Bunn.8:41
Shot from just outside the box by Bradley Johnson goes over the crossbar.8:05
Jonathan Walters takes a shot. Mark Bunn makes a save.6:17
Robert Snodgrass has a headed effort from close range and clears the crossbar.5:10
Bradley Johnson challenges Charlie Adam unfairly and gives away a free kick. Free kick crossed right-footed by Glenn Whelan, Russell Martin makes a clearance.2:12
Sebastien Bassong gives away a free kick for an unfair challenge on Peter Crouch. Charlie Adam shoots direct from the free kick.1:23
Corner taken left-footed by Robert Snodgrass from the right by-line to the near post, Jonathan Walters makes a clearance.0:13
Outswinging corner taken left-footed by Charlie Adam from the left by-line to the near post, Headed effort from deep inside the penalty area by Ryan Shawcross goes harmlessly over the crossbar.0:00
The referee gets the match started.
Live data and text provided by our data suppliers