Winger Michael Oliseh almost levelled for the Eagles when he sneaked in behind the Liverpool backline in the 83rd minute before unleashing a left-footed lob, but Alisson scrambled back to swat the ball clear for a corner.
Palace continued to pour forward looking for an equaliser, but the game was decided when Liverpool were awarded a penalty for a foul on Diogo Jota by Palace keeper Vicente Guaita after a lengthy VAR review, and Fabinho fired home the spot-kick.
Liverpool moved on to 48 points, nine behind City, who were held to a 1-1 draw by Southampton on Saturday and Palace are 13th on 24 points.
In another match played early on Saturday, Burnley earned themselves a precious point in a 0-0 draw away at Arsenal in the Premier League, with their back line and keeper doing just enough to keep out the misfiring Gunners.
Arsenal dominated possession in the first half and registered 12 attempts on goal to Burnley's five, but the home side were let down by some wayward finishing.
The hosts came to life again halfway through the second half, with Emile Smith Rowe and Gabriel Martinelli creating numerous chances in a breathless period of play.
But despite all the pressure they were unable to find the back of the net.
Liverpool hold off Palace fightback to close gap on Man City
Image: HANNAH MCKAY
Liverpool had to withstand a spirited second-half fightback from Crystal Palace before emerging with a 3-1 win on Sunday to close the gap on Premier League leaders Manchester City to nine points.
The visitors started brightly with Andy Robertson and Jordan Henderson missing great chances before an unmarked Virgil Van Dijk gave Liverpool the lead with a thumping header from a corner.
The Reds made it two before the break with an incisive passing move that ended with a superb cross-field ball from Robertson to Alex Oxlade-Chamberlain which he controlled before firing home.
Palace came out a different side in the second half, tearing into Liverpool as Conor Gallagher flashed an early header across the goal and Odsonne Edouard had a clever backheel smothered on the line by keeper Alisson Becker.
They pulled one back 10 minutes into the second half when Jeffrey's Schlupp's pass to Jean-Philippe Mateta sliced open the Liverpool defence, and he squared the ball for Edouard to fire into an empty net.
Liverpool hold off Palace fightback to close gap on Man City
Salah ‘not asking for crazy stuff’ in Liverpool contract talks
Winger Michael Oliseh almost levelled for the Eagles when he sneaked in behind the Liverpool backline in the 83rd minute before unleashing a left-footed lob, but Alisson scrambled back to swat the ball clear for a corner.
Palace continued to pour forward looking for an equaliser, but the game was decided when Liverpool were awarded a penalty for a foul on Diogo Jota by Palace keeper Vicente Guaita after a lengthy VAR review, and Fabinho fired home the spot-kick.
Liverpool moved on to 48 points, nine behind City, who were held to a 1-1 draw by Southampton on Saturday and Palace are 13th on 24 points.
In another match played early on Saturday, Burnley earned themselves a precious point in a 0-0 draw away at Arsenal in the Premier League, with their back line and keeper doing just enough to keep out the misfiring Gunners.
Arsenal dominated possession in the first half and registered 12 attempts on goal to Burnley's five, but the home side were let down by some wayward finishing.
The hosts came to life again halfway through the second half, with Emile Smith Rowe and Gabriel Martinelli creating numerous chances in a breathless period of play.
But despite all the pressure they were unable to find the back of the net.
Liverpool Covid-19 outbreak included lots of false positives, says coach Klopp
The best chance of the game came when Smith Rowe beat James Tarkowski on the left and whipped the ball to Alexandre Lacazette, only for the Frenchman to stab his shot wide of the post.
The draw lifts Arsenal above Tottenham Hotspur on goal difference to sixth place, ahead of Spurs' late game away at Chelsea.
Burnley stay bottom on 12 points but are now only four points from the safety zone, and with at least two games in hand on the three teams above them.
Elsewhere, Brighton & Hove Albion striker Danny Welbeck netted a late header to cancel out Leicester City forward Patson Daka's opener as the teams played out a 1-1 Premier League draw at the King Power Stadium.
Substitute Welbeck rose above Leicester's James Justin at the back post and connected with Neal Maupay's deep cross, sending his header into the bottom corner to grab the equaliser in the 82nd minute.
Daka had put Leicester in the lead in the 46th minute when he scored on the rebound after Brighton keeper Robert Sanchez kept out a shot from Harvey Barnes.
Brighton had the chance to turn the match around in the final minutes, but Dan Burn's header was cleared off the line by Leicester midfielder Youri Tielemans before keeper Kasper Schmeichel saved a stunning effort from Leandro Trossard.
READ MORE
Arsenal vs Liverpool Cup semi-final first leg postponed due to Covid-19
Salah headlines Egypt squad as Aston Villa's Trezeguet returns for Afcon
Liverpool will not sign unvaccinated players, says Klopp
Would you like to comment on this article?
Sign up (it's quick and free) or sign in now.
Please read our Comment Policy before commenting.
Most read
Latest Videos