Enzo Maresca’s men had stepped out seeking to record a club record eighth successive league victory.
However, a brace from Nicolas Jackson proved decisive, the Senegalese striker opening the scoring on six minutes and then striking again on the hour to restore the hosts’ lead shorty after Erling Haaland had headed City level.
The Blues were largely dominant and carved out a host of opportunities with Villa keeper Zion Suzuki also making a series of fine saves.
However, that pressure proved in vain as City went down to what was a fourth successive league loss at Villa Park.
The game in brief
City stepped out seeking to extend a perfect start to the league season, but it was Villa who flew out of the traps first, the hosts taking a sixth minute lead through danger man Jackson.
Marc Guéhi took a heavy touch as City sought to build from the back and that allowed John McGinn the opportunity to put in Jackson as he ghosted into the Blues box.
The Senegalese striker still had work to but cut inside Elliot Anderson before firing home past Gianluigi Donnarumma.
It was a blow but only served to fire Maresca’s men up who suddenly began to dictate affairs in what was a high-octane, high-quality affair.
Villa keeper Zion Suzuki needed to dive well to his right to deny Iliman Ndiaye after the winger cut in from the right before unleashing a superb goal bound drive on 14 minutes.
The Japanese international then did even better on 21 minutes getting down early to smother a Rayan Cherki effort after some superb work from Doku on the left flank.
City were knocking ever louder on the door and only the foot of the post denied Ndiaye - who was outstanding - after another jinking run and shot by the Senegalese.
Villa were a potent threat on the break however and it required a superb tackle from skipper Rúben Dias to prevent Alysson striking potentially doubling the hosts lead on 39 minutes.
Maresca opted to shake things up at the break, introducing Rico Lewis and Phil Foden in place of Guéhi and Cherki who were both on yellow cards.
And the response was instant with City drawing level through Haaland just seven minutes after the restart.
From a neatly worked free-kick, Ndiyae delivered a pinpoint cross and Haaland needed no second invitation to rise and head home his ninth league goal of the season.
With our tails up it needed another fine save from Suzuki to keep Gvardiol out after the Croatian had latched onto a fine Doku ball.
But, out of nowhere Villa hit back to regain the lead on the hour through that man Jackson.
Substitute Ibrahim Mbaye, who had only just come on, powered down the right before pulling the ball to Jackson whose first time shot from 15 yards went in despite Donnarumma’s dive.
City again responded in style - and Suzuki was there again on 69 minutes coming our bravely to thwart Gvardiol after a rebound off Buendia.
City continued to lay siege to the Villa box with Haaland and Doku both so close to forcing a leveller.
But ultimately that pressure came to nought as our Villa Park hoodoo struck again.
TEAMS
ASTON VILLA XI: Suzuki, Cash, Lindelof, Torres, Maatsen, Gomes (Madjo 82), Kamara, McGinn (C) (Buendia 66), Manzambi (Barkley 66), Alysson, Jackson (Goretzska 82)
Subs: Bizot, Mings, Mbaye, Bogarde, Hemmings
CITY XI: Donnarumma, Khusanov, Dias (C), Guéhi (Lewis 45), Gvardiol, Anderson, Fernández, Ndiaye (McAidoo 69), Cherki (Foden 45), Doku, Haaland
Subs: Subs: Rulli, Kovačić, Aït-Nouri, Reis, Bouaddi, O’Reilly.
Enzo’s reaction
Performance overall was good. Amount of chances we created. Second half we only conceded the transition of the goal.
Sometimes you have to defend a bit better or be a bit more lucky in that transition but it’s football. We learn from that and move on.
I can only analyse today and I don’t think we deserved to lose today - but we lost.
You can always learn something. For sure there are things we can do better today.
RUBEN DIAS reaction
Frustrating, it felt like we fought a lot.
For the first 10-15 minutes of the first half we took our time to get into the game. They changed the way they set up so we took time to adapt.
But we fought, we had chances and they ended up scoring two goals in two transitions - very efficient.
Room to improve, we need to do better.
Not our day but we keep moving forward.
What it means
City retain top spot in the Premier League remain three points clear of Arsenal having played a game more.
The second placed Gunners are in action at home to Everton later on Saturday afternoon.
What’s next
Attention turns to the Carabao Cup with City playing host to Brighton and Hove Albion next Wednesday, October 28, in a fourth-round tie.
Kick-off at the Etihad Stadium is slated for 19.30 (UK).
News about Aston Villa v Man City
Aston Villa 2-1 City: Match stats and reaction
City can learn from our first Premier League defeat, says Maresca
Enzo Maresca says City can take plenty from Saturday’s defeat to Aston Villa. Watch more
Maresca: We weren’t clinical enough in Villa defeat
Enzo Maresca says City created enough chances to beat Aston Villa on Saturday. Read more