Wolverhampton Wanderers came from two goals down to beat 10-man Manchester City 3-2 in a pulsating match at Molineux Stadium.
Ederson was dismissed for the visitors in the 12th minute for a foul on Diogo Jota outside the City penalty area.
But Pep Guardiola's side took the lead 13 minutes later. Raheem Sterling scored on the rebound after Rui Patricio had saved his penalty, which he had retaken due to an encroachment by Conor Coady for his initial spot-kick, which had also been saved by the Portuguese.
Sterling added a second five minutes into the second half but Adama Traore sparked the fightback on 55 minutes with a powerful shot into the bottom-left corner.
Traore then dispossessed Benjamin Mendy and crossed for Raul Jimenez to score with eight minutes remaining.
The winning goal came in the 89th minute when Matt Doherty latched on to Jimenez's pass and swept the ball home.
The result means Man City remain in third place, 14 points behind leaders Liverpool.
Wolves, who have completed the league double over Man City, are in seventh with 30 points from 19 matches.
See: Wolves report | Man City report
Next fixtures
Wolves: 29 Dec v Liverpool (A)
Man City: 29 Dec v Sheff Utd (H)
Referee: Martin Atkinson. Assistants: Lee Betts, Constantine Hatzidakis. Fourth official: Andre Marriner. VAR: David Coote. Assistant VAR: Andy Halliday.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time