Juergen Klopp’s side had to work hard to break Everton’s stubborn resistence in a fractious Merseyside derby at Anfield.
They couldn’t muster a shot on target until Scotland defender Andrew Robertson scored with a second-half header.
Divock Origi’s late strike ensured Liverpool kept the pressure on champions City, who had crushed Watford 5-1 on Saturday to move four points clear at the top.
With five games left for both Liverpool and City, the title race looks destined to go down to the wire.
Liverpool, trying to become the first English club to win all four major trophies in one season, now turn their attention to Wednesday’s Champions League semi-final first leg against Villarreal.
Frank Lampard’s men were dumped into the relegation zone by Burnley’s 1-0 win against Wolves earlier in the day.
They sit two points behind Burnley with a game in hand as they try to avoid playing in the second tier for the first time since 1954.
The turning point came when Klopp sent on Belgian striker Origi in the second half.
In the 62nd minute, Origi combined with Mohamed Salah, who crossed to the far post for Robertson to head his second goal this season.
Origi grabbed the second goal with a close-range header in the 85th minute as Liverpool made it 12 wins from their last 13 league matches.
At Stamford Bridge, Chelsea looked set for more angst on home turf when Jorginho’s penalty was saved by Lukasz Fabianski.
But Christian Pulisic came off the bench to inspire third-placed Chelsea, lifting them seven points clear of fifth-placed Tottenham in the fight to qualify for next season’s Champions League via a top four finish.
In the 87th minute, Thiago Silva flicked a header towards Romelu Lukaku, prompting Craig Dawson to concede a penalty with a pull on the substitute.
Dawson was initially booked before being sent off after a VAR check, but West Ham United avoided further punishment as Jorginho’s weak spot-kick was easily saved by Fabianski.
Pulisic spared Jorginho’s blushes in the 90th minute as the United States forward met Marcos Alonso’s cross with a clinical low finish from 10 yards.
Burnley boosted their bid for a remarkable escape act as they moved into 17th place thanks to Matej Vydra’s 62nd-minute strike from a Wout Weghorst cross at Turf Moor.
James Ward-Prowse scored twice as Southampton came from two goals down to draw 2-2 at Brighton.