Shane Long put the Saints ahead on nine minutes, when he controlled a flick-on header by Pierre-Emile Hojbjerg to fire in his 50th Premier League goal.
On 36 minutes, Liverpool were level as Naby Keita rose highest to head in his first goal for the club from a Trent Alexander-Arnold cross.
With 10 minutes remaining, Salah broke forward following a Southampton corner and fired superbly past Angus Gunn to reach a half-century of PL goals for the Reds.
Liverpool added a third six minutes later, when Roberto Firmino played in substitute Jordan Henderson to finish.
Victory puts Liverpool on 82 points, two points clear of Manchester City having played a match more than the champions. Southampton are 16th on 33 points.