Manchester City missed the chance to go top of the Premier League after Leon Bailey rescued a 1-1 home draw for Aston Villa to cancel out Erling Haaland's 10th goal in six games.
Haaland followed up back-to-back hat-tricks against Crystal Palace and Nottingham Forest with a second-half goal at Villa Park (50) as he nudged home Kevin De Bruyne's superb cross to move four goals clear at the top of the Premier League goalscoring chart.
Haaland and De Bruyne came close to adding a second as the Norwegian striker saw Villa goalkeeper Emiliano Martinez deny him twice, while the Belgian struck the bar from a free-kick.
But the home side grabbed an equaliser in the 74th minute when Bailey thumped home a first-time finish from Jacob Ramsey's low cross.
Aston Villa: Martinez (7), Cash (6), Konza (6), Mings (7), Digne (6), Luiz (7), Kamara (6), McGinn (5), Bailey (7), Ramsey (7), Watkins (7)
Subs: Young (7), Coutinho (6), Buendia (n/a)
Man City: Ederson (6), Walker (5), Stones (6), Dias (6), Cancelo (5), Rodri (6), Gundogan (7), De Bruyne (8), Silva (6), Foden (6), Haaland (7).
Subs: Mahrez (6), Ake (6)
Man of the match: Kevin De Bruyne
Villa substitute Philippe Coutinho thought he had given them a shock lead but he was ruled offside before his shot from outside the box went in off the underside of the bar, despite replays later showing he was onside.
City pushed for a winner late on with Rodri lashing wide while Martinez kept out Phil Foden's close-range shot, but Villa held on to avoid a fourth consecutive league defeat and secure a much-needed point for boss Steven Gerrard.
Meanwhile, Pep Guardiola's side are a point behind leaders Arsenal, who face Manchester United at Old Trafford on Sunday, live on Sky Sports.
How City dropped points at Villa Park
- Aston Villa's Douglas Luiz - subject of deadline-day interest from Arsenal - came in for Emiliano Buendia as the hosts made one alteration from the midweek defeat against the Gunners.
- Kevin De Bruyne replaced Julian Alvarez as Pep Guardiola made just one change to his starting line-up from the 6-0 win over Nottingham Forest, while ex-Villa star Jack Grealish returned to the bench.
A quiet first half saw neither side have a shot on target, with Villa striker Ollie Watkins coming closest just before half-time after his shot deflected off John Stones' diving tackle to go just wide of Ederson's post.
But five minutes into the second half the visitors took the lead through Haaland, who scored for a fourth consecutive game. De Bruyne delivered a sumptuous cross from the right that flew over Martinez's reach and dropped perfectly for the 22-year-old to side-foot home at the far post.
Villa created an opening to level in the 58th minute but Ramsey's heavy touch when one-versus-one allowed Ederson to save at his feet.
City looked the likeliest to score next, though, as Haaland was twice denied by Martinez in the space of four minutes. De Bruyne came close too as he first struck the bar from a free-kick just outside the box in the 67th minute before smashing wide after great link-up play with Haaland.
But City's inability to add a second cost them in the 74th minute as Bailey hit a sweet first-time finish into the top corner.
The home fans then thought they had taken the lead five minutes later when Coutinho fired home but the linesman had already put his flag up for offside with the referee blowing his whistle before the Brazilian's shot.
City attempted to nick a late winner but were denied to drop points for the second time this season, while the draw moves Villa out of the relegation zone into 17th.
Man of the match: Kevin De Bruyne
Manchester City's midfield maestro was in scintillating form at Villa Park.
De Bruyne was at the heart of every City attack, put in a magical cross for Haaland's opener and came close to scoring himself. A classic influential performance from the Belgian.
FPL stats: Aston Villa vs Manchester City
|Assists||Ramsey; De Bruyne|
|Bonus points||Haaland (3pts), De Bruyne (2pts), Bailey (1pt)|
Gerrard 'very proud' of result but 'no pats on back'
Aston Villa boss Steven Gerrard speaking to Sky Sports: "Very proud - the players have come together today. They put an incredible amount of effort into the game, followed instructions. City are always going to have moments and we had to ride our luck, this is what we wanted out of the game and this is the game plan we gave them.
"We praised the players after the first half for out of possession stuff but said we need to be more aggressive on the regain and believe in ourselves more. But to concede against City and the players didn't sink I was really happy with the response and the body language.
"They are going to have moments and no one can play perfect against City but we got the big moments right today and this performance was about the team, guts. Listen to the fans' reaction, it doesn't matter if I'm proud but that they are.
"I'll always take the hits, that's my job, we have lost too many points this season and we need to do things slightly different. I'm proud of the players but there will be no pats on the back today because it is a draw. It's a big draw but it's still just a draw.
"I need to lead this team - I knew this job was huge and I know our run of form hasn't been good enough. We've been close to that performance but the moments have gone against us, they have been kinder to us today but that's got to be the start of us today. We have to use this and grow our results."
Pep: We weren't precise enough
Manchester City boss Pep Guardiola speaking to Sky Sports: "Good game. We conceded just one goal from one shot on target in 90 minutes. We were not precise in our final-third touches and our simple things, especially in the first half. We had chances to score a second when the game was in our hands but we didn't.
"We were better after the goal. But we were just not precise enough in the crosses, we missed a few situations and that's why we could not score.
"They [Villa] defended well, they are well organised and physical. The way we defended we created enough chances to score goals, we defended well apart from one action."
Opta stats: Haaland joint-fastest to reach 10 PL goals
- Manchester City's Erling Haaland has now scored 10 goals in his first six Premier League games, the joint-fastest a player has reached that total, along with Mick Quinn in December 1992. Indeed, he's now just the fifth player to score in each of their first three away appearances in the Premier League, after Peter Beardsley, Jürgen Klinsmann, Francesco Baiano and Alen Boksic.
- Manchester City's Kevin De Bruyne has now registered 90 assists in the Premier League, becoming the eighth player to do so in the competition's history in what was his 216th game.
- Aston Villa have ended a run of seven consecutive losses to Manchester City, only against Manchester United have they endured a longer such run in the competition (run of 11 March 2008).
- Manchester City have now failed to win two of their last three Premier League games in which they have scored first (W1 D2), one more than in their previous 31 such games in the competition (W30 D1).
Gerrard will now have to plan for a reunion with Brendan Rodgers, who was his manager at Liverpool and in charge of Celtic when the Englishman had the reins at Rangers.
Aston Villa will travel to Leicester on Saturday September 10, with kick off at 3pm, before hosting Southampton on Friday September 16, live on Sky Sports, with kick off at 8pm.
Manchester City's next fixture sees them open their latest quest to win a maiden Champions League title away to Sevilla on Tuesday, with kick off at 8pm.
The champions will then come face to face with Tottenham - who beat them home and away last season - at the Etihad Stadium on Saturday September 10, live on Sky Sports, with kick off at 5.30pm.