It was far from an easy evening for Manchester City against a well-drilled Aston Villa side, but two late goals secured another precious three points for the hosts on Wednesday.
Dean Smith's Villa have been performing above expectations this campaign, and proof of that was on full display against City, as Pep Guardiola's side struggled to make clear openings early on.
Emiliano Martinez thwarted City's best efforts of the half from Bernardo Silva and Phil Foden to keep the score level going into the break.
City's hopes looked to be fading on the hour mark, as Kevin de Bruyne was forced off through injury and had to be replaced by Gabriel Jesus.
Yet they refused to give up, and were eventually rewarded with eleven minutes to go, when Rodri set up Bernardo Silva who tucked away the opener.
At that point, Villa had very little left in the tank and conceded a penalty in the dying stages.
With De Bruyne off the field, the responsibility was placed on the ever reliable Ilkay Gundogan, and the German made no mistake from the spot.
The win puts City momentarily top of the table, and piles pressure on Manchester United to secure a win over Fulham.