Mason Mount scored twice to help Chelsea to a fifth consecutive win under Graham Potter.
The Blues took the lead after six minutes when Tyrone Mings headed a routine cross from Ben Chilwell straight into the air and the England midfielder reacted quickest to volley smartly past keeper Emiliano Martinez.
Villa reacted well to that early setback and were denied three times by the woodwork and two excellent saves from Kepa, with boss Potter forced to move Raheem Sterling out of the right wing-back role as Chelsea’s back three struggled to deal with a lively home attack.
Steven Gerrard’s side almost levelled when Leon Bailey’s header came back off the bar after good work from John McGinn, with the post then saving Chelsea when Kepa tipped Jacob Ramsey’s shot onto the post and Ollie Watkins’ follow-up also clipped the frame of the goal.
The Spanish keeper once more came to Chelsea’s rescue when Danny Ings’ close-range header was tipped over before Sterling, in a rare Chelsea attack, then rattled the bar with a superb effort from the edge of the box just before half-time.
Potter hauled off Marc Cucerella and Kai Havertz for Cesar Azpilicueta and Kalidou Koulibaly at the break in an effort to bolster his struggling defence, and the changes paid off as Villa were kept comfortably at bay in the second half.
Mount scored his second of the game, and of the season, when he curled a delightful free-kick over Martinez.
Chelsea: Kepa, Loftus-Cheek, Chalobah, Silva, Cucerella (Koulibaly 45), Chilwell, Kovacic (Jorginho 65), Mount, Havertz (Azpilicueta 45), Sterling (Broja 89), Aubamayang (Gallagher 58).
Subs not used: Mendy, Zakaria, Chukwuemeka.