Carlos Tevez struck in stoppage time of the first half to give Manchester City a 1-0 lead over Aston Villa going into the break.
The hosts almost took the lead in the 21st minute when Christian Benteke met a corner with a powerful, downward header, only to see Tevez clear it off the line.
City came within inches of breaking the deadlock less than 10 minutes before the break when Pablo Zabaleta picked up David Silva's pass before cutting inside and firing an effort goalwards. Brad Guzan just got fingertips to it, however, to push it onto the post.
Guzan was called into action again four minutes later as Tevez worked space to shoot on the edge of the area, but the Villa keeper did well to beat away the Argentine's curling effort.
City took the lead in stoppage time when Ciaran Clark was caught in possession by Edin Dzeko, who raced through on goal before squaring to Tevez, who calmly slotted the ball home.