The Hammers captain struck in the 34th minute to halt City's run of three consecutive wins.
Nathan Holland had hit a City post in only the second minute while West Ham goalkeeper Nathan Trott denied Lukas Nmecha at the end of each half.
The clubs swap places in the Division 1 table with West Ham moving up to seventh, two points clear of City.
Man City: 13 Apr v Man Utd (H) PL2
West Ham: 9 Apr v Everton (A) PL2