Again the visitors poured forward in search of the opening goal. First Samir Nasri's shot was deflected wide and then Dzeko headed over after Kolarov had flicked on a Nasri corner.
After all of their pressure, City finally took the lead on the stroke of half time when Toure scored his sixth goal of the season.
Despite being on the back foot for most of the first half, Villa shocked their opponents with the equalising goal soon after the restart when El Ahmadi struck past Hart.
However, Villa were level for only six minutes. Nasri drifted in a corner and Dzeko headed past Guzan at the near post.
The game then turned on its head with two goals for the Villans in three minutes. First Leandro Bacuna bent a 25-yard free kick over the wall and into the top corner to draw his team level, and then Andreas Weimann nicked the ball past Hart and saw it roll over the line.
Stevan Jovetic could have got City level but miscued his attempt after being set up by Toure, who had made his way past three Villa defenders.