City were handed an ideal start, going ahead in the seventh minute with an own goal from United defender Eric Bailly, who stretched out a leg but turned a low Joao Cancelo cross into his own net.
United, shaky at the back despite playing a three-man central defence, relied on goalkeeper David De Gea to keep them in the game as the Spaniard made a series of saves.
But just before the break, Pep Guardiola’s side profited from more woeful United defending with Luke Shaw inexplicably leaving a Cancelo cross deep to the back post, allowing Bernardo Silva to sneak in and poke a shot goalward that crept past De Gea.
Ole Gunnar Solskjaer’s United are now winless in their last four home league games, losing three of them. City are second, two point behind leaders Chelsea who host Burnley later on Saturday.