Carlos Tevez and Zabaleta both tested Spurs goalkeeper Brad Friedel in the minutes prior to halftime, before Aguero drew the hosts level in the 65th minute.
David Silva’s pass was inadvertently diverted into Aguero’s path by a Spurs player and the Argentine cut inside Caulker, before rolling the ball past Friedel.
Silva shot wide and Friedel saved well from Aguero, but victory looked set to elude the home side until Silva picked out Dzeko and the Bosnian hooked a left-foot half-volley into the roof of the net.
In the day’s other game, Kevin Nolan returned to haunt his former club Newcastle United by scoring the only goal as West Ham United won 1-0 at St James’ Park.