West Ham went ahead on the stroke of half-time through Michail Antonio’s coolly taken penalty after Paul Pogba handled inside the area.
United levelled early in the second half through Mason Greenwood who exchanged passes with Anthony Martial before drilling home a low finish for his 17th goal of the season.
Ole Gunnar Solskjaer’s side moved third, a point ahead of Leicester, who they face at the King Power Stadium on Sunday.
Man Utd XI: De Gea, Fosu-Mensah, Lindelöf, Maguire, Williams, Pogba, Matic, Greenwood, Bruno Fernandes, Rashford, Martial
Subs: Mata, Lingard, Fred, Dalot, James, Romero, Ighalo, Wan-Bissaka, McTominay
West Ham XI: Fabianski, Johnson, Diop, Ogbonna, Cresswell, Rice, Soucek, Bowen, Noble, Fornals, Antonio
Subs: Balbuena, Yarmolenko, Felipe Anderson, Lanzini, Wilshere, Haller, Masuaku, Randolph, Coventry