Liverpool open seven points gap at the top of the Premier League after beaten Crystal Palace 4-3 on Saturday.
Palace led thanks to Andros Townsend's first-half goal, but quickfire strikes from Salah and Roberto Firmino turned the game around eight minutes into the second half.
James Tomkins headed Palace level but an awful error by veteran goalkeeper Speroni, tipping James Milner's cross towards his own goal for Salah to score his 50th goal in the Premier League, gave Liverpool a lead that was later added to by Sadio Mane.
Palace netted a stoppage-time consolation through Max Meyer but Liverpool - who had Milner sent off for a second bookable offence late in the second half - held on to stretch their cushion at the top, with Manchester City away to managerless Huddersfield Town on Sunday.
Fabinho fired an early effort over Speroni's crossbar, the 39-year-old goalkeeper becoming the oldest player to feature in the Premier League this season.
Joel Matip then headed a Milner corner narrowly wide as Liverpool pushed for the opener, but it was Palace who took the lead in the 34th minute.
Townsend, who moments earlier survived a penalty appeal for handball, slammed in a first-time finish after Wilfried Zaha beat makeshift right-back Milner far too easily to send in a fizzing low cross.
But Liverpool were level within a minute of the restart, Salah pouncing from close range with a deft close-range finish after Virgil van Dijk's speculative drive deflected high into the air.
Within seven minutes Liverpool were in front after another stroke of fortune, Naby Keita setting up Firmino for a shot that took a deflection to beat the helpless Speroni.
Palace drew level in the 65th minute, however, as Tomkins took advantage of slack marking to head home Luka Milivojevic's corner at the back post, but Liverpool hit back again 10 minutes later.
Speroni's misjudgment of a Milner cross saw the ball again loop invitingly for Salah to finish from virtually on the line.
Jeffrey Schlupp missed a great chance to score an equaliser for Palace and Liverpool were reduced to 10 men after Milner was dismissed for a second yellow card having tripped Zaha.
But Liverpool's threat on the counter was maintained and they made sure of the points in the third minute of added time when Mane cut in from the left wing to beat Speroni.
There was still time for yet another goal, though, as substitute Meyer beat Alisson from inside the box.
Signup for FREE news updates, latest information and hottest gists everyday