Unai Emery’s team poured on the misery for Pep Guardiola’s misfiring team, who have now lost nine of their last 12 matches in all competitions.
Top scorer Jhon Duran put the hosts in front when he netted for the fourth straight game.
Morgan Rogers then got Villa’s second against his former club 20 minutes into the second half before Phil Foden netted a late consolation for the visitors.
**Analysis**
Rogers, who joined City from Albion’s academy, never made a first-team appearance at the Etihad and their decision to sell him to Middlesbrough 18 months ago is the kind which will now come under scrutiny, such is the manner he has flourished with Villa.
The goal was Rogers’ fifth in the Premier League this season, while he also set up Duran’s opener in what was among his best performances of the campaign.
This was Villa’s best victory of the campaign, regardless of City’s current struggles.
Prior to this Emery’s team had only beaten one team currently in the Premier League top half but this was a win almost as emphatic as their famous 1-0 victory last season.
In the short-term, it sent them above Pep Guardiola’s team in the table and was the perfect start to a festive programme which also sees them face Newcastle and Brighton.
Emery made just one change to the team beaten 2-1 late on at Nottingham Forest last weekend but it was significant, Amadou Onana making his first start since early November and paired for the first time with Boubacar Kamara. Together, they helped Villa control proceedings for long periods.
Any theory this might have been a nervy affair between two teams struggling for consistency was dispelled inside 20 seconds.
Villa should have led. Josko Gvardiol played a loose pass and Duran was suddenly through on goal. With Stefan Ortega off his line, the striker tried to take it early from 25 yards out and even though the connection wasn’t clean it still looked as though the effort might roll past the keeper before he stuck out a hand to send it wide.
Moments later it was Ortega’s pure instincts which prevented Villa taking the lead from the corner. Torres met Digne’s delivery at the near post and the City keeper thrust out a hand to send the ball bouncing off the underside of the bar and out.
Jack Grealish, back in the City line-up and booed with every touch, curled an effort wide as the visitors began to dominate possession but it was Villa who then grabbed the lead on the counter attack.
Youri Tielemans picked up a pass from Martinez, spun away from his man and with one pass sent Rogers racing toward goal. The former City man had the option of taking the shot himself but instead squared for Duran, running to his right, who slotted past Ortega.
Most of City’s play was going through Grealish and he was giving former team-mate Matty Cash a tough time. The latter was booked for the third foul on his ex-skipper.
It was Phil Foden who was first to test Martinez with a curling effort following a neat exchange with Rico Lewis which the Villa keeper pushed round the post.
Gvardiol then headed over from Grealish’s cross after City attempted a counter attack of their own. Otherwise, it was relatively comfortable for Villa, who saw Martinez booked after the half-time whistle had blown after getting into a row with Grealish.
Just as in the first half, it was Villa who threatened early in the second, Cash lashing a shot into the side netting after a rapid break when crossing for Boubacar Kamara might have been the better option.
Duran then thought he had doubled the lead when he fired home after being sent clear by Tielemans only for the flag to go up, VAR quickly confirming it was the correct call.
It felt like a second Villa goal was coming. Rogers exchanged passes with Duran and advanced into the box, sending a low shot off the base of the near post.
The next chance he got, his aim was true. Rogers started the move with a driving run from his own half and then from McGinn’s return pass driving a left-footed finish into the bottom corner.
Emery introduced Ollie Watkins off the bench with 10 minutes remaining and he was soon denied by Ortega but Villa were always comfortable with the two-goal lead, even if there was to be no clean sheet as Foden fired home his first Premier League goal of the season with virtually the last kick.
**Teams**
16 GOAL Jhon Duran scores for the fourth straight game to put Villa in front, converting Morgan Rogers’ pass.
65 GOAL Morgan Rogers doubles Villa’s lead, firing a finish into the bottom corner.
90+3 GOAL Phil Foden nets a late consolation for the visitors.
Villa (4-2-3-1): Martinez, Cash, Konsa, Torres, Digne, Kamara, Onana, McGinn, Tielemans, Rogers (Buendia 90+1\_, Duran (Watkins 80) Subs not used: Mings, Nedeljkovic, Bogarde, Maatsen, Barkley, Buendia, Bailey, Olsen (gk).
City (4-2-3-1): Ortega, Lewis, Stones (Walker HT), Akanji, Gvardiol, Gundogan (Savinho 72), Kovacic (Doku 84), Silva, Foden, Grealish, Haaland Subs not used: Ake, De Bruyne, Simpson-Pusey, O’Reilly, McAtee, Carson (gk).