Leroy Sane grabbed the winner as champions Manchester City reignited the title race with a tense 2-1 win over Premier League leaders Liverpool.
The German settled a frantic contest in the 72nd minute at the Etihad Stadium, moments after Roberto Firmino had cancelled out Sergio Aguero’s first-half opener.
Liverpool, whose lead at the top was cut to four points, had themselves been unlucky not to take the lead when John Stones made a remarkable clearance off the line early on.
Yet it was Pep Guardiola’s side who held their nerve after losing three of their previous five games, denying the Reds a win that would have seen them race 10 points ahead.
The game started at a frantic pace and the intensity rarely dropped.
The tension was evident as both sides made mistakes but Liverpool burst into life after 18 minutes to go within a whisker of taking the lead.
Salah and Roberto Firmino combined to release Salah, who struck the post under pressure from Ederson. Stones hacked away the rebound but the ball cannoned off Ederson and bounced back towards goal.
Liverpool were ready to celebrate a freak opener but Stones recovered brilliantly to clear off the line – goalline technology proving he had done so with just 11mm to spare.
It was a major let-off for City, who went straight back on the attack, only for Dejan Lovren to scythe Aguero down. He received a yellow card and moments later City captain Kompany was fortunate not to see red.
Stones played his team-mate into trouble and Kompany was reckless as he dived in on Salah but he escaped with a booking.
City upped the pressure before the break with David Silva having an effort blocked and Sane getting behind Lovren.
The hosts took the lead as Bernardo Silva made an arcing run and pulled back for Aguero. The Argentinian took a touch on the edge of the six-yard box and then smashed home emphatically from a tight angle, his seventh goal in seven home league games against Liverpool.
That forced City back on the front foot and seven minutes later they were back ahead from a quick counter-attack, Raheem Sterling spotting a Sane run on the left. The German pushed into the area and finished with a low shot across goal that went in off the far post.
Liverpool pushed forward in search of a second equaliser and had a prolonged spell in and around the City box before almost being caught out on another counter. Sterling this time found Aguero but Alisson Becker cut him off.
In a tense finale Guardiola was spoken to by referee Anthony Taylor after raging at fourth official Martin Atkinson over a perceived injustice. Bernardo Silva and Sterling both missed chances to add a third but City held on.