Matthew Etherington's second-half strike was enough to clinch a hard-earned victory for Stoke and lift the Potters to eighth in the Premier League.
There were few chances in a cagey encounter, the Canaries defending stubbornly for much of the game.
But, on 71 minutes, Etherington reacted first to substitute Cameron Jerome's flick-on to score from a tight angle.
The result leaves Stoke three points behind seventh-placed Liverpool, with Norwich one point further adrift.
It was the Potters' second straight home win after a run of four defeats, a result that all but seals their Premier League status for a fifth successive season.
Norwich will feel they did enough for large periods in the game to earn a point, but ultimately the home side enjoyed most of the pressure, particularly after the break when they took the game to Paul Lambert's side.
Norwich have not beaten Stoke in seven meetings between the two sides at the Britannia Stadium.
But there was initially little to choose between the sides in a scrappy opening period, and the visitors were accomplished in dealing with Stoke's aerial threat, Zak Whitbread and Elliott Ward holding firm in central defence.
There was plenty of industry on display from both sides in midfield but with a distinct lack of quality or adventure.
Dean Whitehead's rare dart forward was neatly picked out by Walters on 25 minutes and perhaps Whitehead should have done better after bursting into the area, his tame shot easily saved by Ruddy.
Norwich went close shortly after when Russell Martin swung in a free-kick from the right, top scorer Grant Holt rising unmarked to power a header from a difficult angle straight at Asmir Begovic.
The best chance of the half came just before the break. Stoke surprised the visitors by electing for a short throw-in down the right and Shotton combined with substitute Pennant - on for the injured Andy Wilkinson - before crossing to Crouch, whose first effort was blocked by Bradley Johnson, before Ruddy made a fine point-blank save with his legs from Crouch's fiercely struck rebound.
The home side attempted to grab the initiative at the beginning of the second period, forcing a number of corners. But the Canaries continued to be robust, frustrating their hosts and their manager Tony Pulis on the sidelines.
There was precious little to enthuse a packed crowd and Pulis changed his forward line after the hour mark in search of the elusive goal
Crouch and Walters were replaced by Kenwyne Jones and Cameron Jerome, who made an immediate impact.
After Stoke forced a throw in down the left, he flicked on into the path of Etherington, who nudged the ball past Ward's tame challenge before firing a left foot volley past Ruddy, who was easily beaten at his near post.
The solitary goal proved to be controversial after replays showed that Norwich should have been awarded the throw-in as the last touch came off Stoke full-back Mark Wilson.
But, while it will be a subject of frustration for Lambert, it was his side's momentary lapse of concentration that ultimately proved costly.
Jerome should have made it two in the closing stages but dithered at the crucial moment when presented with a one-on-one opportunity.
Holt had Norwich's best chance to salvage something in the final moments, but his effort from the edge of the box was well blocked.
Norwich boss Paul Lambert: "I think it was our throw [for the goal.]
"The referee is walking away as if he has given it to us, and he actually raises his hand a little bit as if it is a Norwich throw, and then the linesman has overruled him for some reason.
"Our lads think it is our throw, we are out of possession and then we lose a bad goal. I think it was there for everybody to see that it was a Norwich throw.
"The ref did admit it to me in the tunnel that he was going to give it to us, but the linesman has overruled him.
"It is frustrating. We never had many chances in the game and never really got going with any fluency."
Stoke manager Tony Pulis: "I haven't seen the incident for the goal, but if that (what Lambert said) is right and we got a little bit of luck, then I think we have deserved it with our overall performance.
"Andy Wilkinson might have just dislodged his back a little, which then caused his hamstring to get tight. But you can't afford to take a chance.
"We put Jermaine Pennant on and he did smashing. The two of them - him and Ryan Shotton - were very good on the right side."
- 01 Begovic
- 04 Huth
- 17 Shawcross
- 28 Wilkinson (Pennant - 25' )
- 30 Shotton
- 06 Whelan
- 12 Wilson
- 18 Whitehead
- 26 Etherington
- 19 Walters (Jerome - 69' )
- 25 Crouch (Jones - 69' )
- 29 Sorensen
- 20 Upson
- 15 Diao
- 16 Pennant
- 09 Jones
- 10 Fuller
- 33 Jerome
- 01 Ruddy
- 02 R Martin
- 06 Whitbread
- 22 Ward
- 25 Naughton
- 04 Johnson (Fox - 79' )
- 11 Surman
- 12 Pilkington (Jackson - 46' )
- 17 E Bennett Booked
- 24 Howson Booked (Wilbraham - 75' )
- 09 Holt
- 31 Steer
- 33 R Bennett
- 14 Hoolahan
- 15 Fox
- 05 Morison
- 10 Jackson
- 21 Wilbraham
Live Text Commentary
Full Time The match has reached full-time.90:00 +3:02
Asmir Begovic takes the free kick.90:00 +3:02 Booking
Booking Booking for Elliott Bennett for unsporting behaviour.90:00 +2:54
Free kick awarded for an unfair challenge on Glenn Whelan by Elliott Bennett.90:00 +1:26
Cameron Jerome takes the chance to get an effort at goal. Blocked by Elliott Ward.90:00 +0:49
Short corner taken by Jermaine Pennant.89:28
Kyle Naughton takes a shot. Shot from just outside the box by Kyle Naughton goes over the target. Blocked by Elliott Bennett.87:35
Grant Holt gives away a free kick for an unfair challenge on Ryan Shawcross. Asmir Begovic takes the free kick.86:12
The referee blows for offside. John Ruddy restarts play with the free kick.85:41
Elliott Bennett crosses the ball, Asmir Begovic makes a save.84:43
Outswinging corner taken from the left by-line by Andrew Surman, clearance made by Cameron Jerome.83:39
Effort on goal by Cameron Jerome from 12 yards. Blocked by Elliott Ward.82:28
Inswinging corner taken right-footed by David Fox, clearance made by Cameron Jerome.78:30 Substitution
Substitution David Fox on for Bradley Johnson.77:37
Free kick awarded for an unfair challenge on Robert Huth by Aaron Wilbraham. Direct free kick taken by Asmir Begovic.77:10
Simeon Jackson takes a shot. Robert Huth gets a block in.76:12
Free kick awarded for an unfair challenge on Aaron Wilbraham by Marc Wilson. Direct free kick taken by Russell Martin.75:50
Matthew Etherington produces a cross, Kenwyne Jones takes a shot. Save by John Ruddy.74:31 Substitution
Substitution Aaron Wilbraham on for Jonathan Howson.73:22
Centre by Jermaine Pennant, Elliott Ward makes a clearance.
Unfair challenge on Robert Huth by Simeon Jackson results in a free kick. Asmir Begovic restarts play with the free kick.71:38
Assist by Cameron Jerome.71:38 Goal scored
Goal! - Matthew Etherington - Stoke 1 - 0 Norwich Matthew Etherington finds the back of the net with a goal from inside the box to the bottom right corner of the goal. Stoke 1-0 Norwich.68:29 Substitution
Substitution (Stoke) makes a substitution, with Kenwyne Jones coming on for Peter Crouch.68:29 Substitution
Substitution Cameron Jerome on for Jonathan Walters.63:41
Grant Holt fouled by Ryan Shawcross, the ref awards a free kick. Andrew Surman produces a strike on goal direct from the free kick, Asmir Begovic makes a save.63:09
The ball is delivered by Jermaine Pennant, Zak Whitbread manages to make a clearance.61:51
The official flags Jonathan Walters offside. John Ruddy takes the free kick.61:05
The referee blows for offside. John Ruddy restarts play with the free kick.60:48
Free kick awarded for a foul by Grant Holt on Ryan Shawcross. Direct free kick taken by Ryan Shotton.59:15
Matthew Etherington takes the inswinging corner, Peter Crouch has a header from inside the six-yard box and clears the crossbar.58:30
Free kick awarded for an unfair challenge on Jonathan Walters by Zak Whitbread. Free kick crossed right-footed by Jermaine Pennant, Bradley Johnson manages to make a clearance.57:42
Corner taken right-footed by Jermaine Pennant from the left by-line to the near post, clearance made by Bradley Johnson.56:15
Free kick awarded for a foul by Elliott Ward on Glenn Whelan. Direct free kick taken by Asmir Begovic.54:40
Grant Holt gives away a free kick for an unfair challenge on Marc Wilson. Direct free kick taken by Asmir Begovic.53:53
Peter Crouch challenges Zak Whitbread unfairly and gives away a free kick. Direct free kick taken by John Ruddy.53:42
Elliott Bennett takes a shot. Save made by Asmir Begovic.51:50
Corner taken left-footed by Matthew Etherington, John Ruddy makes a save.51:39
The ball is crossed by Matthew Etherington, Kyle Naughton manages to make a clearance.50:42
Free kick awarded for a foul by Glenn Whelan on Grant Holt. Kyle Naughton takes the free kick.50:30
The ball is delivered by Jermaine Pennant, clearance by Bradley Johnson.46:40
Jermaine Pennant takes a inswinging corner to the near post, Jonathan Howson makes a clearance.46:20
Corner taken by Jermaine Pennant from the left by-line played to the near post, Jonathan Howson makes a clearance.46:09
Centre by Matthew Etherington, Zak Whitbread manages to make a clearance.45:30
Grant Holt is penalised for a handball. Asmir Begovic takes the free kick.45:01
The game restarts for the second half.45:01 Substitution
Substitution Simeon Jackson replaces Anthony Pilkington.45:00 +1:20 Half time
Half Time The referee calls an end to the first half.45:00 +1:01
Jermaine Pennant delivers the ball.45:00 +0:14
The ball is sent over by Glenn Whelan, clearance made by Elliott Ward.44:40
Unfair challenge on Peter Crouch by Zak Whitbread results in a free kick. Free kick taken by Glenn Whelan.42:39
Peter Crouch takes a shot. Save by John Ruddy.42:17
Peter Crouch takes a shot. Bradley Johnson gets a block in.39:12
Elliott Bennett gives away a free kick for an unfair challenge on Dean Whitehead. Direct free kick taken by Asmir Begovic.36:54
Peter Crouch fouled by Russell Martin, the ref awards a free kick. Matthew Etherington takes the free kick.36:04
Marc Wilson gives away a free kick for an unfair challenge on Elliott Bennett. Direct free kick taken by Bradley Johnson.34:39
Grant Holt produces a right-footed shot from outside the penalty box and misses left.32:01
Ryan Shotton sends in a cross.31:35
Unfair challenge on Jonathan Walters by Zak Whitbread results in a free kick. Free kick taken by Dean Whitehead.30:50
The referee blows for offside against Jonathan Walters. John Ruddy restarts play with the free kick.29:13
Free kick awarded for an unfair challenge on Grant Holt by Robert Huth. The ball is crossed by Russell Martin, Grant Holt takes a shot. Save by Asmir Begovic.28:01
Robert Huth produces a left-footed shot from just outside the penalty area that goes harmlessly over the target.27:19
Corner taken by Matthew Etherington from the right by-line to the near post, Russell Martin manages to make a clearance.25:44
Grant Holt challenges Marc Wilson unfairly and gives away a free kick. Free kick taken by Asmir Begovic.24:21 Substitution
Substitution Jermaine Pennant on for Andy Wilkinson.23:23
Dean Whitehead takes a shot. Save by John Ruddy.20:40
Free kick taken by Marc Wilson.20:40 Booking
Booking Jonathan Howson is given a yellow card.20:23
Unfair challenge on Glenn Whelan by Jonathan Howson results in a free kick.18:42
Ryan Shotton crosses the ball, clearance made by Zak Whitbread.17:33
Free kick awarded for an unfair challenge on Grant Holt by Marc Wilson. The free kick is swung in left-footed by Andrew Surman, save made by Asmir Begovic.17:13
Zak Whitbread fouled by Peter Crouch, the ref awards a free kick. John Ruddy takes the direct free kick.15:51
Grant Holt concedes a free kick for a foul on Glenn Whelan. Marc Wilson takes the free kick.15:20
Headed effort from inside the area by Robert Huth misses to the left of the goal.14:04
The official flags Jonathan Walters offside. Indirect free kick taken by John Ruddy.13:49
Matthew Etherington produces a cross.11:58
Jonathan Walters challenges Zak Whitbread unfairly and gives away a free kick. John Ruddy takes the free kick.11:19
Grant Holt challenges Robert Huth unfairly and gives away a free kick. Direct free kick taken by Asmir Begovic.10:40
A cross is delivered by Elliott Bennett.8:18
Jonathan Walters takes a shot. John Ruddy makes a save.5:23
Foul by Ryan Shawcross on Grant Holt, free kick awarded. The free kick is delivered left-footed by Andrew Surman from left wing, save by Asmir Begovic.2:11
Jonathan Walters produces a cross.0:59
Ryan Shotton delivers the ball.0:06
Inswinging corner taken from the right by-line by Matthew Etherington, clearance by Kyle Naughton.0:00
The match begins.
Live data and text provided by our data suppliers