Ruben Dias and Bernardo Silva put the visitor into the ascendancy with first-half strikes as City claimed its 11th win in 12 meetings with Villa.
Ollie Watkins halved the deficit after the interval prior to the introduction of Grealish, who returned to Villa Park for the first time since joining Pep Guardiola's side for a British record £100million fee.
City remains a point behind leader Chelsea, which triumphed 2-1 in its away fixture at Watford on Thursday (AEDT).
Rodri stung Emiliano Martinez's hands as City dominated the opening stages before Leon Bailey saw a seemingly goal-bound effort blocked at the other end.
Dias then proved the unlikely first goalscorer with a deflected left-footed effort into the bottom-right corner following Raheem Sterling's cutback to the edge of the area.
City doubled its lead on the stroke of half-time when Gabriel Jesus raced away on the counter and clipped across for Silva, who converted with an expert first-time volley.
Watkins pegged Guardiola's team back as he hooked a low volley just inside the right-hand post from Douglas Luiz's corner before Ezri Konsa poked narrowly wide amid claims for a penalty for a Nathan Ake foul.
Jesus looked to add a third but miscued a half-volley well over, while Ederson was required to deny Carney Chukwuemeka in excellent fashion as City held on for another victory.