David Silva fired City ahead in the 12th minute after a Raheem Sterling cross from the left was turned back across the goal by Bernardo Silva and the Spaniard took his time before blasting home.
City doubled their lead in the third minute after the interval -- Aguero bursting goalwards and playing a clever exchange with Riyad Mahrez, before thumping the ball, from a tight angle, past David de Gea.
United manager Jose Mourinho brought on Romelu Lukaku for Jesse Lingard in the 57th minute and within seconds the Belgian forward helped get his team back in the game.
Lukaku was brought down inside the area by City keeper Ederson and French forward Anthony Martial confidently converted the spot kick.
But four minutes from the end City secured the victory, their 10th in 12 games this season, when the influential Bernardo Silva picked out substitute Ilkay Gundogan in the area and the German made no mistake as he made it 3-1.
Eighth placed United are now 12 points behind City.