Eden Hazard and Branislav Ivanovic netted for Chelsea, either side of Jores Okore's header for Villa, which ended a goal drought of 11 hours for Paul Lambert's team.
It is the first time Jose Mourinho has won as Chelsea manager against Villa in the Premier League at Villa Park.
"Obviously it is a very important victory for us," Mourinho said. "There is a long way to go, the Premier League is the Premier League and every game is difficult. It is the only league in the world where the teams from the bottom, they can play the teams from the top and not just make it difficult, they can win matches and points."
Defending champion City needed a last-minute free kick from midfielder James Milner to salvage a point at home to Hull after David Meyler had surprisingly put the visitors ahead in the first half.
City has now gone four games in the league without winning and manager Manuel Pellegrini conceded that Saturday's result makes his side's hopes of retaining its title harder.
"It is more difficult to reverse seven points than five points but Chelsea can also lose games," Pellegrini said. "More importantly, for our team it is important to recover our performances."
Elsewhere, Tottenham came from behind to beat fierce north London rival Arsenal 2-1 in the day's early game thanks to two goals from striker Harry Kane.
Germany international Mesut Ozil lashed a volley past Hugo Lloris after 11 minutes to give Arsenal the lead. However, Arsene Wenger's side immediately sat back and invited pressure from Tottenham, while looking to strike on the counterattack.
Kane converted a rebound on 56 minutes after Arsenal goalkeeper David Ospina made a brilliant save to keep out Mousa Dembele's header, before leaping highest to nod in Nabil Bentaleb's cross four minutes from the end.
"It's a special feeling," Kane said. "The fans were incredible today ... The spirit is high and I am enjoying it."
Liverpool could not break down a stubborn Everton defence at Goodison Park as Saturday's late kick-off ended goalless.
The city rivals played out a subdued Merseyside derby, with Liverpool's 19-year-old winger Jordon Ibe going closest to scoring when he hit the post from 25 metres in the first half.
It was Liverpool captain Steven Gerrard's final appearance against Everton, and the midfielder went close with an acrobatic shot that was deflected over in the 53rd but he ultimately could not force a winner for his side.
"I knew I got good contact on it, it would have been a great way to round off possibly my last time here at Goodison," Gerrard said. "I think all in all it was a fair result today."
The result meant that Brendan Rodgers' side lost ground on the top four in the Premier League, as Southampton's Champions League push continued with a 1-0 win at Queens Park Rangers.
Sadio Mane scored the winner for Ronald Koeman's side in the 90th minute.
Crystal Palace's resurgence under new manager Alan Pardew continued as it beat Leicester 1-0, while Swansea drew 1-1 with Sunderland.