Dimitri Payet celebrated signing his new West Ham contract by rescuing a 2-2 draw at Norwich.
The Hammers looked down and out after falling two goals behind thanks to strikes by Robbie Brady and Wes Hoolahan, with City on the verge of a precious win in their battle to beat the drop.
But Payet, handed an improved deal this week to ward off big-money interest from China, pulled one back before setting up the equaliser for Mark Noble.
It was a bitter blow for Norwich, who remain in the bottom three despite ending their run of five straight defeats.
City looked determined to right the wrongs of the previous few games straight from kick-off and almost took the lead in the opening minute, Russell Martin driving just over the crossbar from 20 yards.
Brady then curled a free-kick inches too high, Steven Naismith scuffed a good chance wide and Hoolahan's effort from a quickly-taken corner was only just off target.
West Ham, perhaps not so fresh from their 120-minute FA Cup marathon against Liverpool in midweek, carved out only the occasional chance in the first half although John Ruddy, recalled in the Norwich goal in preference to Declan Rudd, did well to tip over a fierce, angled drive from Enner Valencia.
But in the 54th minute Norwich took a deserved lead when Brady robbed Michail Antonio midway inside the Hammers half, charged forward unchallenged and thumped an unstoppable shot past Adrian and into the top corner.
It was the summer signing from Hull's second goal for the Canaries - his first also came against West Ham in the 2-2 draw at Upton Park in September.
Ten minutes later Norwich doubled their lead when Hoolahan fed Naismith on the 18-yard line and continued his run into the area.
As the Scot's shot cannoned between the legs of James Collins it fell perfectly at the feet of Hoolahan to sweep the ball past Adrian.
West Ham hit back when sub Victor Moses burst into the penalty area and held off two challenges before firing towards goal.
Ruddy got down well to palm out the effort but it dropped straight to Payet, who smashed it into the roof of the net.
Suddenly the Hammers found their second wind and within three minutes they were level, with Payet this time turning provider.
The Frenchman collected the ball on the by-line and picked out Noble on the edge of the area, the midfielder blasting a first-time shot past Ruddy.
Both sides had chances to win it, with Moses driving over for the visitors and Nathan Redmond inches from a stoppage-time winner for City.
TWEET OF THE MATCH
"Oh lord - I spoke too soon ... Noreich, please, darlings. Don't do this. Behave. Pull yourselves together."
Stephen Fry @stephenfry
John Ruddy: 6
Russell Martin: 6
Timm Klose: 6
Sebasien Bassong: 6
Robbie Brady: 7
Jonny Howson: 7
Gary O'Neil: 6
Nathan Redmond: 6
Wes Hoolahan: 7
Steven Naismith: 7
Cameron Jerome: 6
Martin Olsson: 6
Dieumerci Mbokani: 6
Graham Dorrans: 6
Sam Byram: 6
James Collins: 7
Angelo Ogbonna: 6
Aaron Cresswell: 7
Alex Song: 6
Mark Noble: 7
Pedro Obiang: 7
Dimitri Payet: 7
Michail Antonio: 6
Enner Valencia: 6
Victor Moses: 7
Andy Carroll: 6
Emmanuel Emenike: 6
Dimitri Payet. Not the Frenchman's best game but his quality showed when it mattered. Hauled his side back into a match that looked beyond them midway through the second half.
MOMENT OF THE MATCH
Robbie Brady likes playing against West Ham. Both his Norwich goals have come against them and the second was a cracker from the edge of the area after he robbed Michail Antonio.
VIEW FROM THE BENCH
Alex Neil recalled goalkeeper John Ruddy in place of Declan Rudd in goal, and he was not at fault for either goal. Slaven Bilic's introduction of Victor Moses from the bench sparked West Ham into life.
MOAN OF THE MATCH
Referee Mike Jones infuriated both sets of players and the benches with some baffling decisions, penalising some perfectly fair challenges and letting other fouls go.
WHO'S UP NEXT?
Leicester v Norwich (Premier League, Saturday 27 February).
Blackburn v West Ham (FA Cup, Sunday 21 February).
Do YOU want to write for GiveMeSport? Get started today by signing-up and submitting an article HERE: https://www.givemesport.com/writeforgms