Lewis Grabban’s first-half goal gave Norwich the points in the first derby of the season.
The £3m summer signing from Bournemouth latched on to some in-decision in the Blues’ backline at a corner to beat Dean Gerken with a header from close range.
Daryl Murphy had Town’s best chance, his header going just wide five minutes into the second-half.
David McGoldrick was back in the starting line-up in the only change from the side that drew at Birmingham in midweek.
Former Town Academy player Ryan Bennett’s return to Portman Road lasted only five minutes, the defender carried off on a stretcher and replaced by Javier Garrido.
McGoldrick’s burst down the flank opened up the Norwich defence and from his cross the ball eventually fell to Murphy but at an awkward height and his hurried shot went over the bar.
Nathan Redmond almost found space inside the Town box but Christophe Berra spotted the danger to clear, Alex Tettey then almost releasing Grabban but Tyrone Mings was in the right place to end the move.
Gerken saved comfortably from Steven Whittaker’s strike, the first effort on target, John Ruddy
then cutting out any threat from Mings’ cross.
Redmond fed Grabban on the edge of the box but Gerken went down to the right to make the save before the Canaries edged in front on 23 minutes, Grabban heading in after Tettey had headed the ball back into the box from a corner.
A well worked free-kick saw Cole Skuse find McGoldrick on the spin and his shot was only a yard wide from distance as Blues looked to respond.
Redmond and Grabban linked up down the left, Tettey’s shot blocked from the cross, Kyle Lafferty driving the rebound wide.
The Canaries threatened a second from a cross but Lafferty failed to get a connection and Jay Tabb cleared, while at the other end Ruddy saved from Murphy then McGoldrick smashed wide from distance after a mazy run.
Skuse sent an effort over the bar, then Paul Anderson’s strike failed to test Ruddy as the first-half came to an end.
Town were inches away from levelling the scores five minutes after the restart, Murphy heading wide from a great position but a minute later Norwich could have made it two, Grabban going through but getting too much on his chip and the ball landed on the roof of the net.
Ruddy saved at his near post from McGoldrick’s strike, Gerken then forced into a save at full stretch from Grabban’s volley.
Grabban almost extended the lead for the visitors when he rounded Gerken but Tommy Smith cleared his effort off the line on the hour mark, then the Town ‘keeper held firm from Bradley Johnson’s left foot curler.
Skuse found Anderson with an excellent pass but the wideman couldn’t beat Ruddy from 25 yards, Norwich then threatening again with Wes Hoolahan almost releasing Redmond inside the Town box.
Blues made a triple change for the last 20 minutes, with Alex Henshall, Kevin Bru and Conor Sammon entering the fray, Luke Hyam, Tabb and Anderson making way.
Bru sent in a wicked cross that forced a corner, the midfielder then sending a right foot effort wide as Town pushed forward, Henshall setting up an another corner that was hacked clear.
Johnson was denied by Gerken, Mings, who was providing an outlet for Blues down the left, picking up a yellow card for a foul as Tettey broke through.
Murphy almost rescued a point for Town, the Republic of Ireland just failing to get on the end of Berra’s head down but the Canaries held on to leave Portman Road with the points.