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.
"Alisson has bailed us out a good few times in the past and today he had some moments. We haven't got anyone else we'd want other than him," Oxlade-Chamberlain told Sky Sports.
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. Palace are 13th on 24 points.
"I think it was positive, especially the second half. We played well and were more aggressive and we scored," Palace goalscorer Edouard told Sky Sports.
"Yeah I scored but we lose so I can't be happy for this. I think we need to keep working and try to win the next game."
The French forward declined to blame the referee and VAR for the late penalty that derailed the Palace comeback.
"This is the decision of the referee, we can do nothing about this. We have to respect this and that's it," he said.