The Hornets stunned City as they raced out of the blocks and opened up a 2-0 lead inside the first half-hour through Fernando Forestieri and Troy Deeney at the Etihad Stadium.
City fought back after the break with Aguero striking twice to level and the killer blow came three minutes from time as Jonathan Bond allowed an Aleksandar Kolarov shot to squirm through his grasp.
Aguero completed the comeback in the final minute and City left the field to a huge sigh of relief and with their quadruple challenge still intact.
Watford, 33/1 to win at the start of play, had given them an almighty scare and highlighted more defensive concerns along the way. Giuseppe Sannino's men, 16th in the Championship, had just one player who cost a fee in their starting line-up - Deeney, for £500,000 - and they had not won away since October.
City's bench alone cost £84million but it was Watford who looked the more composed team before the break.
City were lethargic and if there was any complacency on their part it was ruthlessly exposed.
Deeney gave an early warning of intent with a shot that flew over before Forestieri hit a free-kick into the wall and Cristian Battocchio was wayward from the rebound.
Ikechi Anya got behind the defence but collided with goalkeeper Costel Pantilimon trying to reach a bouncing ball.
City did respond with Micah Richards winning a free-kick on the edge of the area but that came to little and Joleon Lescott spurned a gilt-edged chance from five yards after a corner.
City were almost caught out by a swift counter-attack as Forestieri played in Deeney but his ball was too strong.
But Manuel Pellegrini's side failed to heed the warnings and Forestieri raced past Martin Demichelis from a brilliant flick by Deeney and clinically drove home the opener.
City tried to respond but they lacked a killer touch as Jack Rodwell - making only his fourth start of the season - Jesus Navas and Aguero all shot weakly at Bond.
It was unconvincing from City and Forestieri shot wide before a poor clearance by Demichelis led to Watford's second after half an hour.
Sean Murray and Anya were both involved as the ball was quickly returned towards City's goal and Deeney finished calmly after going through one-on-one with Pantilimon.
The home fans were stunned and Pellegrini, recognising that his defence was struggling, sent out Vincent Kompany and Pablo Zabaleta to warm up.
Both were sent on at half-time as City attempted a salvage operation, with Rodwell and Richards making way and the shaky Demichelis pushed into midfield.
City's superiority became evident as they began to make the running but Watford hung in doggedly.
Utilising Navas out wide, City pieced together a good move but Edin Dzeko scuffed his shot.
Pellegrini sent on Stevan Jovetic to join Aguero and Dzeko up front and his first contribution was to head a good chance wide.
But City had the momentum and they pulled one back on the hour as Dzeko slid onto a dangerous ball from Kolarov on the left.
Bond reacted well to deny the Bosnian but Aguero snapped up the rebound to score for a 23rd time this season.
Watford tried to push forward when they could but thereafter at largely became a question of their resilience.
They managed to repel more attacks as Dzeko, Jovetic and Aguero all combined to good effect.
Yet City could come at them from all angles and Navas, who had seen plenty of possession but little joy in the first half, had them backtracking.
He charged down the right and found Aguero, who once again did the rest with a with weaving run and marvellous clipped shot into the top corner.
It then became a matter of whether Watford could hold on and they were broken three minutes from time as Kolarov's tame shot went through Bond.
Aguero added gloss to the scoreline in the dying moments.