Luka Milivojevic drove relegation threatened Palace into a 13th minute lead from the penalty spot, and the hosts were left to rue their luck as Liverpool duo Loris Karius and Sadio Mane could easily have been sent-off.
Mane levelled four minutes after the break and, despite having one of his quieter games of an incredible debut season at Liverpool, Salah still proved the match winner.
Liverpool leapfrog bitter rivals Manchester United, but United can retake second spot behind runaway leaders Manchester City when they host Swansea later on Saturday.
A third straight home defeat for Palace leaves Roy Hodgson’s men just two points above the drop zone, having played two games more than Southampton in 18th.
Despite a huge Champions League quarter-final, first leg with Manchester City looming at Anfield on Wednesday, Jurgen Klopp named his strongest side.
And there was plenty to concern Klopp ahead of the European encounter with free-scoring City as Palace exposed Liverpool’s defensive deficiencies.
As in their defeat to United at Old Trafford earlier this month, Liverpool were exposed down their right as young full-back Trent Alexander-Arnold struggled to cope with the pace of power of Wilfried Zaha.
The Palace talisman should have scored when he got in behind after just nine minutes, but was denied by a brave stop from Loris Karius.
The German ‘keeper’s form has improved markedly from his early days at Anfield, however, he was caught out by Zaha’s speed when the winger flicked the ball goalward before being cleaned out by Karius.
– Liverpool bailed out by Benteke –
Referee Kevin Friend awarded the penalty and deliberated before showing Karius just a yellow card.
Milivojevic is a specialist from the spot and converted his seventh penalty from eight in the Premier League this season to give Palace the lead.
Mane was booked for a theatrical fall after the slightest of contact from James McArthur and his luck was out again when he did finally get the ball in the net only to be flagged offside.
Liverpool levelled just four minutes into the second-half when James Milner’s drilled cross was turned home at the near post by Mane.
But in worrying signs for Klopp, the visitors’ brittle defence was only bailed out by two glaring misses from Christian Benteke.
The former Liverpool striker sent an attempted lob well wide with just Karius to beat and then shot over the bar after Van Dijk had been caught in possession by Andros Townsend.
Palace players and fans were then incensed when Mane avoided a second yellow card after deliberately handling the ball on the ground when he thought he had been fouled.
Palace conceded late against Tottenham Hotspur and Manchester United in their previous two home games, and again failed to hold out against one of the top four.
Salah scored four in Liverpool’s last outing two weeks ago against Watford, but the league’s top scorer was kept in check by the Palace defence until he controlled Andy Robertson’s low cross before firing home on his less favoured right foot for his 37th goal of a remarkable season.