Bernardo Silva's superb strike and a last-minute Ilkay Gundogan penalty earned Manchester City a 2-0 win over a battling Aston Villa at the Etihad Stadium.
Pep Guardiola's side enjoyed much of the possession, but were frustrated by a well-drilled Villa defence.
Phil Foden twice went close in the first half, heading at Emiliano Martinez, before pouncing on a wonderful Kevin De Bruyne through-ball, only to be denied by Matty Cash's block.
After the break, Bertrand Traore showed sublime control from a long throw by Martinez and slipped past De Bruyne, but his final shot lacked power on 52 minutes.
City responded, with Joao Cancelo clipping the woodwork two minutes later.
Silva broke the deadlock with 11 minutes remaining, controlling Rodrigo's pass before unleashing an unstoppable left-footed shot.
Gundogan wrapped up the points from the spot after Cash had handled.
City's sixth straight Premier League win sends them second, on 38 points, above Leicester City on goal difference and two points below Manchester United, with a match in hand on both.
Villa, whose head coach Dean Smith was sent off shortly after Silva's goal, lie 11th with 26 points.
See: Man City report | Aston Villa report
Next fixtures
Man City: 26 Jan v West Brom (A)
Aston Villa: 23 Jan v Newcastle (H)
Match officials
Referee: Jonathan Moss. Assistants: Harry Lennard, Darren Cann. Fourth official: David Coote. VAR: Andy Madley. Assistant VAR: Simon Beck.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time