The Hammers recorded a third successive top flight win for the first time in seven years as they beat their fellow strugglers to move into 10th after a fiercely contested affair.
Mohamed Diame created the first goal of the match with a precision flat cross from the left wing, which found centre-back James Collins in the middle of the box and he bravely headed beyond John Ruddy.
With Norwich committing all their men to attack, Diame sealed victory for the Hammers when he raced through the Norwich half unchallenged before sliding beyond Ruddy for the second.
After a sedate start it was Norwich, and striker Gary Hooper, who passed up a number of gilt-edged chances to secure the three points, with Hammers goalkeeper Adrian again in top form.
Robert Snodgrass and Alex Tettey also found the Spaniard in the way as they looked to secure a third away league win of the campaign, with West Ham rarely able to trouble Ruddy in the Canaries' goal.
Sam Allardyce's side were lacking the spearhead of Andy Carroll and only Diame truly tested Ruddy before the England goalkeeper went missing for Collins' late show.
Hooper, whose first league goal for Norwich came in their 3-1 win over the Hammers back in November, came close to opening the scoring on nine minutes as his header from Nathan Redmond's cross forced Adrian to push the ball away and it was cleared behind for a corner to the visitors.
It was Adrian who once again came to West Ham's rescue as Snodgrass timed a forward run to perfection and was found by the busy Redmond.
But the Scotland winger took a heavy touch, giving the goalkeeper time to narrow the angle and keep out the resulting shot.
The Norwich defence then almost paid for their collective inability to clear the ball as Matt Jarvis curled an effort towards goal but it proved simple for Ruddy to collect.
The slow-starting Hammers were reduced to looking for spectacular ways to beat Ruddy and it was Mark Noble who was next to send a long-range effort straight at the England man.
As the half wore on the hosts started to enjoy more sustained pressure on the Norwich goal as Stewart Downing fired over before delivering a teasing cross that was well cleared by Norwich skipper Sebastien Bassong.
Adrian was again on hand to keep the scores level, this time pushing Tettey's shot behind for a corner as the visitors worked their way through the West Ham backline.
Hooper spurned another chance to open the scoring early in the second half, this time collecting Tettey's speculative effort but only managing to roll a tame effort into the gloves of Adrian when free on the edge of the penalty area.
The former Celtic striker was the man who looked most likely to provide a winning goal for the visitors but he was thwarted by Adrian yet again as he shot from an acute angle after being picked out by Johnson.
Ruddy made a great save moments later as Kevin Nolan slipped the ball through to substitute Diame, whose low effort was turned behind by the Norwich goalkeeper.
West Ham, on the ropes for much of the contest, then came out fighting at the death as a short free-kick to Diame was crossed towards Collins and, with Ruddy rushing out and getting nowhere near the ball, the Wales defender steered the ball home to put West Ham ahead.
As Chris Hughton's side searched in vain for a dramatic, and deserved, equaliser, Diame was freed into a barren Norwich half and turned the ball home courtesy of a heavy deflection to send the home fans into raptures at the final whistle.