After two consecutive cup defeats Manchester City were under a lot of pressure when Kompany was sent off 10 minutes into the game against Hull for bringing down Nikica Jelavic who was through on goal.
But David Silva put them ahead four minutes later and City defended well to hold on and then sealed the win when Silva sent through Edin Dzeko to make it two in the final minute.
Meanwhile in the late game, Chelsea capitulated at Villa Park after seeing Willian controversially sent off for two yellow cards in the 69th minute. There was no doubt on the first card that referee Chris Foy gave Willian but the second card was for an innocuous challenge.
Surprisingly, considering the experience that they have, Chelsea folded at Villa Park after going a man down. Fabian Delph put Villa ahead with a brilliant goal before Ramires was given a straight red for a nasty stamp on Karim El Ahmadi. In the resulted melee Jose Mourinho was also sent off.
Chelsea’s defeat throws open the title race. Chelsea are six points clear at the top, but Manchester City now have three games in hand.
Just behind the top two are Liverpool and Arsenal who have massive games away from home against bitter rivals Manchester United and Spurs tomorrow. Wins by Liverpool and Arsenal will bring them within four points of Chelsea.
At the other end of the table, bottom-side Fulham gave their chances of survival a huge boost with an huge 1-0 win over Newcastle United at Craven Cottage. Ashkan Dejagah goal gave Felix Magath his first win as Fulham boss.
There was also a first win for Pepe Mel as West Brom came from behind to beat Swansea City 2-1 at the Liberty Stadium.
Elsewhere, Sunderland and Crystal Palace did little to aid their relegation battles with a 0-0 draw at the Stadium of Light.
Everton broke Cardiff hearts with an injury time goal to win 2-1 at home while Stoke won for just their third game since Christmas with a 3-1 over West Ham.
Finally Southampton survived a late Norwich flurry to cling on to a 4-2 victory at St Mary’s, the first time the Saints have won two league games in a row since early October.