Eden Hazard scored twice as Chelsea fought off the challenge of Manchester City to take a step closer to the Premier League title with a 2-1 win at Stamford Bridge.
Antonio Conte's side showed resilience in responding from their surprise loss to Crystal Palace and the gap at the top remained seven points as second-placed Tottenham came from behind to win at Swansea.
Goalkeeping errors contributed to the opening goals as Hazard shot through Willy Caballero and Thibaut Courtois gifted City an equaliser, scored by Sergio Aguero.
Hazard saw a penalty saved by Caballero, but tucked in the follow up to give Chelsea a 2-1 half-time lead which they would not relinquish.
City poured forwards time and again in the second half and John Stones missed from three yards in stoppage time.
The visitors were ultimately undone by their first-half fragility. The excellent David Silva, in particular, did not deserve to experience defeat.
Should Pep Guardiola resolve the familiar failings this summer, City will surely challenge for the title next term.
City exposed flaws in Chelsea, but Conte's side are irrepressible -- none more so than Hazard.
Guardiola, at Barcelona and Bayern Munich, had never experienced home and away championship defeats to the same opposition manager. Now he has.
Conte's Chelsea need 18 points in their remaining eight games to clinch the title. Next they face Bournemouth.
Chelsea won 3-1 at the Etihad Stadium in December in a match which finished with a touchline melee sparked by Aguero's wild challenge on David Luiz.
Both bosses insisted there would be no lingering animosity, despite Luiz still requiring treatment on his knee, but Aguero was booed throughout.
Vincent Kompany made his third Premier League start of the season and first since November. Fabian Delph made his first league start of the campaign.
Conte made a first change to his regular back three of Cesar Azpilicueta, Luiz and Gary Cahill since he switched to the formation in September's loss at Arsenal.
Kurt Zouma came in for his first league start in 14 months, while Cesc Fabregas was chosen in midfield ahead of Nemanja Matic.
Jesus Navas was again at right-back, but Chelsea's opener came down the other flank.
Hazard invited Azpilicueta, at right wing-back in the continued absence of Victor Moses, to come forward.
Azpilicueta played a one-two with Pedro then cut the ball back for Hazard to shoot first time.
There may have been a slight deflection off Kompany, but Caballero should have done better as City's goalkeeping travails continued.
Courtois saved after Aguero played a one-two with Silva and ran at Chelsea, who responded.
Hazard bamboozled Fernandinho twice and fed Fabregas, whose shot deflected over.
The jeers for Aguero grew when he went to ground under Marcos Alonso's challenge, with no foul given.
Moments later the Argentina striker levelled. Courtois' calamitous clearance went to Silva, whose shot was saved as far as Aguero. He tucked in his 27th goal of the season.
City broke forward and Courtois dived in at Leroy Sane's feet. The Germany forward might have looked for a penalty, but refreshingly he tried to score and Courtois blocked.
The pace was frenetic and Fernandinho was slow in trying to tackle Pedro, tripping the Spaniard for a Chelsea penalty.
Caballero saved Hazard's poor spot-kick, but the Chelsea playmaker followed up to score his 13th of the season.
Luiz and Aguero went shoulder to shoulder, with the Chelsea defender winning the duel to the delight of the home faithful.
Matic replaced Zouma at half-time, with Conte's regular back three reunited -- and needed to withstand the second-half onslaught.
Kompany's hopeful header from a free kick hit the top of the crossbar and Fernandinho sliced a volley wide.
As Chelsea fought off City's attempts to squeeze them into submission, Guardiola and Conte had regular dialogue. No quarter was given on the pitch or in the technical area.
Stones evaded Matic to meet a Silva corner and should have scored. Courtois gratefully held the ball.
Pedro and Hazard had chances as Chelsea made rare forays forward, while Kompany and Diego Costa collided in midfield.
City twice came close to an equaliser in stoppage time, with Courtois denying Aguero from a tight angle before Stones' effort ballooned over.