Champions League - Aguero late show rescues win for City
With Villarreal coming into the contest off the back of successive Champions League defeats in Group A and a solitary win in La Liga this season, expectations were high that City could kick-start their European campaign.
City pressed and levelled through a Carlos Marchena own goal just before half-time, and as the clock ran down it looked as if the visitors had done enough to seal a draw.
Aguero had other ideas, however, scoring from point-blank range after Pablo Zabaleta's inviting low cross.
With Napoli and Bayern Munich playing out a 1-1 draw in Naples, City remain third in the group on four points, but are now within a point of second-placed Napoli.
Manchester City came into the game looking to put the debacle of Bayern Munich, now best remembered for Carlos Tevez's apparent refusal to come on as a substitute, behind them.
A capacity crowd in Manchester were in full voice as the game began, but they were stunned early by Cani's fourth-minute strike.
It was a moment of sloppiness from the hosts, with Nigel De Jong punished for losing possession in his own half. In an instant Rossi fired off a left-footed drive from just outside the penalty area, and Joe Hart parried the shot straight into Cani's path.
City took a few minutes to regroup from that setback, but began to impose themselves on their opposition as the half wore on.
Having two-thirds of the possession, the home side probed through Silva in the middle, with Adam Johnson looking dangerous on the right and Aleksandar Kolarov making numerous willing runs down the left.
It was the Serbian's cross that nearly teed Samir Nasri up to equalise, but with the ball arriving at an awkward height to the Frenchman, his shot looped just over the bar.
Dzeko's jinking run to the byline very nearly played in Silva for a tap-in after a quarter of an hour, but the Villarreal defence scrambled his cutback away just in time.
Kolarov tried his luck from distance too - with a skidding shot from distance in the Manchester rain slipping just wide of Diego Lopez, and a cheeky free-kick from the left forcing a save from the keeper, who was expecting a cross instead.
Nonetheless, the equaliser finally arrived shortly afterwards, with Kolarov's fizzing centre forcing Marchena into an error as Dzeko looked to get on the end of it.
Dzeko might have put City ahead soon after - in fact, the Bosnian had several chances to score on an evening when he was not at his best.
On the stroke of half time he beat the offside trap only for Lopez to smother his shot, while soon after the resumption Villarreal's number one had to pull off another sharp save as the striker was left unmarked.
Rossi, isolated up front for Villarreal in the first half, had a couple of half-chances as the visitors showed a little more adventure, with one angled effort forcing a full-stretch stop from Hart.
The best chances continued to fall to Dzeko, however, but they were spurned as the game went into the latter stages.
Aguero, perhaps being saved for the weekend's Manchester derby, came on and threaded a pass to his team-mate, only for Dzeko to drill just wide, while an ever-more exasperated Mancini held his head in his hands as the Bosnian nodded a free header beyond the far post.
With just three minutes of time it looked as if Manchester City's wait for a first Champions League victory would continue.
But 92 minutes and 55 seconds in the pressure finally told. Aguero has already scored some magnificent goals in his short City career, but his poke from close range may be his most important yet, sending Mancini into raptures on the touchline.