A clinical finish by Andros Townsend gave the Eagles the lead on 34 minutes after excellent work by Wilfried Zaha.
But Salah’s smart finish levelled the match a minute after half-time, before Roberto Firmino linked with Naby Keita to score Liverpool's second on 53 minutes.
Palace's James Tomkins headed in to make it 2-2, before Salah pounced on an error by goalkeeper Julian Speroni for his 50th Premier League goal.
Liverpool's James Milner was sent off in the 89th minute for two bookable offences before Sadio Mane scored a fourth in added time and Max Meyer produced a late consolation for the visitors.
Liverpool's seventh straight PL home win puts the leaders on 60 points, seven clear of second-placed Manchester City.
Crystal Palace stay 14th on 22.
Liverpool: 30 Jan v Leicester (H)
Palace: 30 Jan v Southampton (A)