• 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.
West Ham 2-1 Man City: Russell Brand hijacks Allardyce interview
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.
West Ham v Manchester City
West Ham have won five of their opening nine games in a Premier League season for the first time since 1999-2000
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.
West Ham 2-1 Man City: 'Unlucky' in front of goal - Manuel Pellegrini
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 v Manchester City
Diafra Sakho is the first West Ham United player to score in six successive Premier League appearances
West Ham v Manchester City
This was Manchester City's first Premier League away defeat since a 3-2 loss at Liverpool on 13 April
West Ham v Manchester City
West Ham have now scored in eight successive Premier League games
West Ham v Manchester City
Manchester City have lost the last seven Premier League matches that they have been losing at half-time
Source:BBC