Graham Potter was handed his first Chelsea defeat by his former team as Brighton & Hove Albion earned their new boss Roberto De Zerbi his maiden victory at the club in a packed Saturday of Premier League action.
Kai Havertz sparked Chelsea hopes of a comeback, but Pascal Gross sealed the win in stoppage time to give Brighton their first ever Premier League win over the Blues and in turn, move them up to eighth.
Chelsea remain in fifth on 21 points.
City were dominant but, missing the 17-goal Haaland, who was out with a foot injury, they needed brilliance from captain De Bruyne, whose 49th-minute dipping free-kick went over the wall and in via a post.
Tottenham Hotspur came from two goals down to beat AFC Bournemouth 3-2 at Vitality Stadium. A first-half brace by Kieffer Moore had put the Cherries in command, but Ryan Sessegnon started the comeback, Ben Davies put Spurs level and Rodrigo Bentancur won it in stoppage time.
The victory kept Spurs third on 26 points, two behind Arsenal, whilst a third straight defeat leaves AFC Bournemouth in 14th on 13 points.
Eddie Howe's team stay fourth and are now on 24 points, while Villa are in 16th on 12 points.
The result drops Liverpool to ninth on 16 points, four more than Jesse Marsch's team who climb out of the bottom three to 15th.
At Selhurst Park, Odsonne Edouard's first-half goal was enough for Crystal Palace to beat Southampton and seal a third consecutive home win, moving the Eagles up to 10th on 16 points. Southampton are 17th with 12 points.
Wolves remain in the bottom three on 10 points and lost Diego Costa for the next two league matches after the forward was sent off for violent conduct in stoppage time. Brentford sit 11th on 15 points.
Meanwhile at Craven Cottage, Jordan Pickford starred, making six saves, as Fulham and Everton played out a goalless draw to keep Frank Lampard's side in 12th on 14 points, while Marco Silva's team are in seventh with 19 points.
A fifth consecutive win over West Ham would move Erik ten Hag's side up to fifth.