It was United’s seventh win in a row in all competitions and while they remain in sixth place, they are certainly looking up rather than down.
Referee Mike Dean’s decision to send off West Ham midfielder Feghouli in the 15th minute was comfortably the biggest talking point of the evening.
The Algerian momentarily lost control of the ball as he drove towards goal, allowing Phil Jones a chance to challenge.
Both players lunged in, Jones scissoring Sofiane with both legs as he just got to the ball first, and with the United centre-back writhing on the ground, Dean brandished a red card.
United had arrived in London on a high following their 2-1 comeback win over Middlesbrough on New Year’s Eve and Feghouli’s red card allowed them to take control of the game.
Manuel Lanzini had already forced United goalkeeper David de Gea to produce a fine save by the time Feghouli departed.
– Antonio fluffs lines –
He also threatened in the 44th minute with a curled effort that the Spain international spectacularly turned around the post.
But United had the best opportunity to open the scoring when Henrikh Mkhitaryan crossed low from the left for Antonio Valencia in the 36th minute.
The full-back was only five yards from goal, but West Ham goalkeeper Darren Randolph produced a quite remarkable save to keep his effort out and Jesse Lingard put the rebound against the post.
Michail Antonio squandered two highly presentable opportunities for West Ham early in the second half, first heading wide from Dimitri Payet’s right-wing free-kick.
He was then sent clean through by Lanzini, only to strike his shot straight at the advancing De Gea.
The spurned opportunities took on new significance when two United substitutes –- Marcus Rashford and Mata -– combined to put United in front in the 63rd minute.
Rashford, who had only just arrived on the pitch, crossed low from the left and Mata, who replaced Matteo Darmian at half-time, swept home his sixth goal of the season.
It was 2-0 in the 78th minute, Ibrahimovic slamming home after the home defence failed to clear for his 18th goal since arriving on a free transfer from Paris Saint-Germain.
Replays showed the 35-year-old Swede was in an offside position, but the goal was allowed to stand — a source of further annoyance for West Ham and their manager Slaven Bilic.