Eden Hazard fired Premier League leaders Chelsea to a crucial 2-1 win over Manchester City, but Tottenham are hot on their heels after a sensational fightback in their 3-1 victory at Swansea on Wednesday.

Chelsea remain seven points clear of second placed Tottenham with eight games to play, yet with just minutes left on a dramatic evening it seemed the Blues would have a much greater lead.

Rocked by Saturday's shock 2-1 home defeat against Crystal Palace, Antonio Conte's Chelsea side took only 10 minutes to take the lead through Hazard's 12th goal of the season.

Hazard's effort deflected off Vincent Kompany and beat Willy Caballero, whose weak attempted save drew a frustrated look from City boss Pep Guardiola as he contemplated the latest in a growing list of gaffes from his goalkeepers this season.

Chelsea keeper Thibaut Courtois was guilty of an even worse blunder, spilling David Silva's shot to Sergio Aguero, who tapped in City's 26th minute equaliser.

Conte's team were back in front after 35 minutes when Fernandinho conceded a penalty with a foul on Pedro.

Hazard's spot-kick was saved by Caballero, but the Belgian recovered quickly to finish off the rebound.

Kompany, back in the line-up for the first time since November, hit the crossbar with a second half header, but fourth placed City crashed to their first defeat in nine games, while Chelsea are still in pole position for the title.

"Another step, a big step, against a great team," Conte said.

"We must think that Tottenham could win all their games. We are playing a great season but to win the title there is a long way to go."

Guardiola added: "We created enough to score goals. It's our problem. In the boxes we are not good enough."

At the Liberty Stadium, Tottenham fell behind in the 11th minute when Wayne Routledge turned in Jordan Ayew's cross for Swansea.

A minute into stoppage-time, South Korea forward Son Heung-Min bagged his 16th goal of the season with a clinical finish and there was still time for Christian Eriksen's strike to put the seal on Tottenham's fifth successive win.

"It is crazy how the goals came in the last few minutes but we pushed and we created chances to win. This season we are fighting again," Spurs boss Mauricio Pochettino said.

Arsenal eased the pressure on Arsene Wenger and climbed back into the race for Champions League qualification with a 3-0 win over West Ham.

Wenger had endured repeated calls for his resignation from frustrated fans in recent weeks, but the protests at the Emirates Stadium were more muted for once as Arsenal ended a three-match winless run with only their second victory in their last seven league games.

Mesut Ozil broke the deadlock in the 58th minute with a curling effort from the edge of the penalty area.