Albion, who had not netted in their previous three league matches, went close in the first half as Peter Odemwingie's shot was tipped on to the bar and James Morrison had an effort cleared off the line, only for Andrew Surman's volley to then hand the Canaries the advantage in the 43rd minute.
Fit-again Shane Long came off the bench and equalised with a penalty in the 68th to bring the Baggies' goal drought to an end, but it was not enough to salvage them a point, Morison nodding in the winner 11 minutes from time.
The result means 15th-placed West Brom are now only five points above the relegation zone, while Norwich, who have recorded back-to-back away wins in the league, remain ninth.
Albion had some key players back in their squad for the game, midfielders Jerome Thomas, Youssouf Mulumbu and Paul Scharner all returning to the starting line-up after injuries, while Long, recently sidelined by a back problem, was named as a substitute.
Norwich manager Paul Lambert made five changes to his team, with goalkeeper John Ruddy coming back in for Declan Rudd and Morison replacing Grant Holt up front.
Odemwingie made the first attempt on goal in the fifth minute, chesting the ball down midway through the visitors' half before letting fly with a strike that Ruddy dived to push on to the bar.
Six minutes later the Canaries made contact with the woodwork themselves, a mix-up at the back for West Brom seeing the ball come off Morison and roll against the outside of the post.
Odemwingie then tried his luck again, firing wide from the edge of the box, before Simeon Jackson scooped one over at the other end.
Simon Cox, scorer of a hat-trick in the hosts' FA Cup victory over Cardiff last weekend, found himself in on goal in the 21st minute but Ruddy came out to block his shot.
Albion appealed for a penalty when Thomas appeared to be tripped by Daniel Ayala in the area but referee Mike Dean allowed play to continue, and it then took a goalline clearance by Surman to keep out a drive from Morrison.
The Baggies continued to press and there was another important intervention as Zak Whitbread slid to get in the way of Thomas' shot.
Having weathered the storm, though, Norwich then had a chance when Morison met Anthony Pilkington's cross, sending his header wide.
And with two minutes of the first half remaining, the visitors snatched the lead as Surman caught Wes Hoolahan's cross sweetly to rifle the ball past Ben Foster.
West Brom went in search of a leveller after the restart, but Morrison and Scharner blazed attempts over the bar.
Morrison then went closer with a dipping effort from distance that was just too high.
Albion boss Roy Hodgson refreshed his forward line in the 63rd minute by bringing on Long for Odemwingie - as well as Graham Dorrans for Scharner - and the Republic of Ireland international immediately brought a save out of Ruddy, before teeing up Cox to do the same.
Moments later, a wild-looking challenge on Thomas by Ayala saw the Baggies awarded a penalty, and Long stepped up to calmly sweep it in.
Lambert made an attacking adjustment of his own by withdrawing Jackson for Holt, who also had a swift impact.
Mulumbu lost the ball in the 79th minute and as Norwich broke forward, Holt provided a great cross from the left for Morison to convert.
West Brom pushed for a second equaliser, but their efforts were in vain as Norwich claimed all three points.