Norwich created the best chances but failed to make them count and Mamady Sidibe's header from Rory Delap's long throw was enough to net three precious points for promotion-chasing Stoke.
The visitors kicked off attacking the River End goal, but Norwich enjoyed the best of the early exchanges.
After 11 minutes Ryan Bertrand put in a useful left-wing cross but it was just too far ahead for Lee Croft. Ten minutes later Jamie Cureton's goalbound shot was blocked by Leon Cort.
A right-wing corner from Liam Lawrence caused problems for the Norwich defence, but David Marshall pounced on the loose ball.
Carlo Nash was then quickly off his line to deny Croft a shooting chance and five minutes before half-time Cureton brought a save from Nash with another crisp strike.
There was a scare for the home side when Carl Dickinson's left-wing cross struck the crossbar, before Nash did well to hang on to Mark Fotheringham's deflected shot early in the second half.
Stoke went ahead in the 58th minute when Sidibe got his head to Delap's long throw from the right and the ball looped over Marshall, who had come off his line.
The home side went on the offensive, but Cureton's cross was too easy for Nash and Jon Otsemobor fired over.
Mo Camara made way for Ched Evans who saw plenty of action in the last 20 minutes of the game. He brought a good save from Nash, but should have done better with a header which was too close to the Stoke keeper.
Marshall saved a long-range shot from Lawrence, while at the other end Matty Pattison's shot fizzed just wide.
In stoppage time Cureton snatched at his shot and missed the target from close range as the Canaries failed to get the point they probably deserved.