Manchester City cut Liverpool
Liverpool can restore their six-point advantage if they beat Tottenham on Sunday but, after dropping points last weekend, the Reds go into that game knowing they have the defending champions breathing down their neck.
But while this ended up being a routine win for Pep Guardiola's side, they had to work hard and wait to break down a well-organised Villa side.
The visitors had largely frustrated City in the first half but their resistance lasted for only 20 seconds after the restart.
After Villa squandered possession from their own kick-off, Ederson's long punt forward was flicked on by Gabriel Jesus and into the path of Sterling, who made no mistake.
Jesus should have made it 2-0 soon afterwards when a mistake by Bjorn Engels left him clean through, but a combination of a Tom Heaton save and a brilliant goal-line clearance by Tyrone Mings denied him.
City had to wait until the 65th minute for their second goal, which confusingly was eventually awarded to David Silva, after a long delay for a VAR decision that had concluded it was Kevin de Bruyne's goal.
It was unclear at first glance whether Silva or Raheem Sterling, who would have been offside from a Silva touch, had got a deflection on De Bruyne's wicked curling cross but after a four-minute delay that was met with derision by both sets of fans, it was ruled it had gone straight in and was allowed to stand.
However, some time after the final whistle, the goal accreditation panel - an independent entity which has no affiliation with VAR - awarded the goal to Silva, who had wheeled away in celebration.
Nonetheless, Ilkay Gundogan made absolutely sure of the points a few moments later, when Fernandinho's shot was cleared into his path, and he expertly adjusted his body to put away a fine first-time finish.
The hosts finished the game with 10 men after Fernandinho was shown a second yellow card.