The visitors were without star duo Paul Pogba and Anthony Martial at the London Stadium, as the two Frenchmen failed to recover from the injuries that saw them miss the midweek win over FC Astana in the Europa League.
Nemanja Matic and Marcus Rashford were the sole survivors in the starting XI from that win over the Kazakh outfit.
West Ham started brightly without creating any clear-cut opportunities in what was a cagey first half before Yarmolenko broke the deadlock just before the interval.
Mark Noble found Felipe Anderson, who picked out Yarmolenko and he curled his shot into the corner beyond visiting keeper David de Gea.
The Red Devils made a strong start after the break and Juan Mata fired wide soon after the restart. Midfielder Scott McTominay then forced a save from Hammers stopper Lukasz Fabianski but the away side couldn’t find a way back into the game.
With 84 minutes on the clock West Ham put the game to bed as Ashley Young’s foul gave Cresswell an opportunity from a free kick.
The full-back, who had narrowly missed the target from a free kick less than 10 minutes earlier, beat the wall and his effort nestled into the top right corner giving De Gea no chance.
West Ham move up to fourth as a result of the victory and are unbeaten since their opening-day mauling at the hands of Manchester City, while Manchester United remain without a Premier League win on the road since February.