Manchester City came from behind to keep themselves within nine points of Premier League leaders Liverpool with a hard-fought 2-1 win over Chelsea.
All the goals in an open contest at the Etihad Stadium came in the first half as the champions responded to N'Golo Kante's early strike with goals from Kevin De Bruyne and Riyad Mahrez.
Raheem Sterling thought he had added a late third for City but his injury-time strike was ruled out for offside in a very tight VAR call.
Sergio Aguero hit the woodwork before the break but the game ended with concern for City's record goalscorer after he hobbled off 13 minutes from time.
City spurned a number of chances to kill off the game in the second half but the Londoners could not get back into the game and were leapfrogged in the table by the hosts, who moved third.
The match was an entertaining one with both sides keen to attack. City had a good early chance when Aguero played in De Bruyne but the Belgian drove his shot across goal.
Chelsea also went close after Tammy Abraham broke clear from a poor Mahrez pass and teed up Willian but the Brazilian fired past the far post.
The visitors enjoyed a spell in the ascendancy and Abraham curled a shot over from Fikayo Tomori which also missed the target.
The visitors were rewarded for their positivity when they claimed the lead after 21 minutes. Mateo Kovacic picked out Kante with a well-weighted ball over the top and the Frenchman took a touch before poking a shot under the advancing Ederson.
That prompted a strong response from the hosts and they were level within eight minutes as De Bruyne struck from the edge of the area, albeit with a slice of luck.
De Bruyne wrongfooted two defenders with a nice touch but was then fortunate as his shot took two deflections to deceive Kepa Arrizabalaga.
De Bruyne had a repeat opportunity moments later only to fire over but Mahrez stepped up to put City ahead with a fine individual goal.
The Algeria international cut inside from the left between two defenders and sent a low shot through the legs of Tomori and into the far corner of the net.
It might have got worse for Chelsea as Kepa gifted another chance to Aguero in front of goal but the Argentinian thumped his shot against the crossbar.
Mahrez went close to grabbing a second after the break following another run across the box but this time he clipped his effort wide.
Mahrez was unlucky again after Cesar Azpilicueta produced a fine block to deny Fernandinho and the ball dropped to him, but this time Kepa touched his powerful drive over.
Phil Foden looked lively after he was introduced for David Silva - who was suffering from cramp - in the 67th minute but his first effort saw him shoot tamely at Kepa.
Aguero wanted a penalty after tangling with Reece James on the edge of the area but nothing was given.
Aguero may have been hurt in that fall as it proved to be his last meaningful involvement and he limped off soon after.
For all City's control in the second half, they did not kill off the game and they had scares when Willian volleyed over and Mason Mount curled an injury-time free-kick wide.
There was drama in the closing moments as Sterling struck but VAR denied him by millimetres.