Match ends, West Ham United 2, Manchester City 1.
- West Ham's third straight win
- Hammers one point behind Man City
- Sakho scores sixth league goal in six games
- Man City five points behind leaders Chelsea
- City three clean sheets in 13 league and cup games
Manchester City's title ambitions suffered a setback as Diafra Sakho scored for the sixth straight league game to help earn West Ham victory.
City, five points behind leaders Chelsea, fell behind when Morgan Amalfitano stabbed home Enner Valencia's cut-back from three yards.
Sergio Aguero and Yaya Toure hit the bar for the visitors before Sakho headed in Aaron Cresswell's cross.
David Silva pulled one back with a curled shot into the far corner.
City poured forward in the closing stages in search of an equaliser, Stevan Jovetic denied by a fine Adriano save.
But Manuel Pellegrini's men were poor overall, and West Ham full value for a third straight win that lifts them one point behind last season's champions.
For long periods, City played like a side jaded after their long midweek Champions League trip to Russia, where they were held to a draw by CSKA Moscow after blowing a 2-0 lead.
They lacked cutting edge in attack and organisation at the back as Enner Valencia and Sakho used their pace to torment a defence that has kept just three clean sheets in 13 league and cup games.
Keeper Joe Hart needed treatment after he was hurt in denying Valencia and it was the Ecuador forward's ball that led to the opening goal moments later.
City's England international keeper was left badly exposed as Amalfitano side-footed home in the 21st minute after Eliaquim Mangala had been outpaced by Valencia following Song's defence-splitting pass.
With the visitors looking a shadow of the side that had destroyed Tottenham a week earlier, Stewart Downing twice went close, Valencia screwed a chance wide and James Collins narrowly failed to connect with Amalfitano's ball across the six-yard area.
In contrast, Aguero only looked like adding to his nine Premier League goals once the match entered its frantic closing stages.
The Argentine was denied when Adrian finger-tipped his 65th-minute effort on to the bar following Toure's surge.
It was then Toure's turn to hit the woodwork with a thunderous effort - before Sakho doubled the hosts' lead.
When the 24-year-old Senegalese climbed to meet Cresswell's 75th-minute cross, Hart dropped to his left to get a hand to the ball and turn it away from goal.
But the assistant referee correctly ruled the ball had crossed the line, leaving the £3.5m summer signing from Boulogne to celebrate becoming the first Hammers player to score in six straight Premier League games.
City pulled a goal back two minutes later when Silva weaved through the West Ham defence before launching a shot into the far corner.
Adrian denied Jovetic in the dying moments but Sam Allardyce's men hung on for a deserved win.
West Ham manager Sam Allardyce:
"We put Manchester City's back four to task and, in my opinion, they didn't hold up.
"The quality of our play in the final third is why we have won the game.
"When you have got quality players, quality players look forward to the big games.
"Alex Song led us as a team and the rest of the lads responded."
- 30SongBooked at 47mins
- 21AmalfitanoBooked at 7minsSubstituted forKouyatéat 67'minutes
- 31E ValenciaSubstituted forColeat 76'minutes
- 15SakhoSubstituted forNolanat 89'minutes
- 12Vaz Te
- 4KompanyBooked at 44mins
- 22ClichySubstituted forKolarovat 78'minutes
- 42Y Touré
- 6RegesSubstituted forMilnerat 78'minutes
- 10DzekoSubstituted forJoveticat 59'minutes
- Martin Atkinson
- Shots on Target
Second Half ends, West Ham United 2, Manchester City 1.
Corner, Manchester City. Conceded by James Collins.
Attempt blocked. Aleksandar Kolarov (Manchester City) left footed shot from outside the box is blocked. Assisted by Yaya Touré.
Corner, Manchester City. Conceded by Adrián.
Attempt saved. Stevan Jovetic (Manchester City) right footed shot from outside the box is saved in the top centre of the goal. Assisted by James Milner.
Attempt missed. Yaya Touré (Manchester City) left footed shot from the left side of the box is close, but misses to the left. Assisted by James Milner.
Substitution, West Ham United. Kevin Nolan replaces Diafra Sakho.
Corner, Manchester City. Conceded by Cheikhou Kouyaté.
Foul by Vincent Kompany (Manchester City).
Carlton Cole (West Ham United) wins a free kick on the left wing.
Delay over. They are ready to continue.
Delay in match Diafra Sakho (West Ham United) because of an injury.
Attempt saved. Mark Noble (West Ham United) left footed shot from the centre of the box is saved in the centre of the goal.
Attempt missed. Yaya Touré (Manchester City) right footed shot from outside the box is high and wide to the right.
Attempt missed. Jesús Navas (Manchester City) right footed shot from outside the box is just a bit too high. Assisted by Aleksandar Kolarov.
Attempt blocked. Sergio Agüero (Manchester City) right footed shot from the centre of the box is blocked. Assisted by Stevan Jovetic with a headed pass.
Delay over. They are ready to continue.
Delay in match Winston Reid (West Ham United) because of an injury.
Substitution, Manchester City. James Milner replaces Fernando.