The Reds have now gone 12 top-flight games without defeat since October but they had to fight back from Jamie Vardy's third-minute effort and squandered a succession of chances before the break.
Salah wasted a couple of fine chances to draw level in the first half as Liverpool dominated but made amends with two well-taken finishes in the 52nd and 76th minutes to take his tally to the season for 23 goals in all competitions.
Liverpool had to endure a tense finish but held on to ensure that they will end 2017 in fourth place, at least one point above Tottenham Hotspur, with Leicester staying in eighth.
Vardy strikes early to put Foxes ahead
Vardy, so often Leicester's difference-maker against top opposition, took just three minutes to deliver his seventh career goal in eight appearances against the Merseyside outfit.
Joël Matip's careless pass - with Liverpool's £75 million January signing Virgil van Dijk watching on from the Main Stand - allowed Vicente Iborra to steal possession and slot Riyad Mahrez inside Andrew Robertson, the Algerian squaring for Vardy to tap in.
Liverpool nearly produced an immediate response but Salah could only side-foot wide from inside the box after setting himself well from Sadio Mané's cross.
The Egyptian was a constant threat with Harry Maguire recovering to magnificently execute a sliding challenge and deny Salah a shot at goal having gone through one-on-one from James Milner's pass.
Schmeichel dealt well with Coutinho's stinging long-range drive before Mané looked to have levelled from an excellent Robertson delivery, but saw his strike cancelled out for offside.
With Liverpool in complete control Leicester's threat was reduced to a few counter-attacks and Salah missed another gilt-edged chance when he tried to chip over Kasper Schmeichel on the angle but missed the mark.
Roberto Firmino brought two saves from Schmeichel with relatively tame drives, but Liverpool's tempo cooled as the visitors held their own. Daniel Amartey closed Coutinho down well as he shaped to shoot in another half-chance before the interval.
Salah pulls Reds level before firing them in front
But Liverpool finally equalised on 53 minutes when Mané's clever back-heel through Leicester's back-line released Salah. The winger held off Christian Fuchs and skipped past Amartey to fire low through Schmeichel and ease the Anfield tensions.
Salah went close again when he lifted a shot over the on-rushing Schmeichel only to see his lob bounce on to the roof of the net, while Mané had another goal rightly chalked off for straying beyond the last man soon after.
But while Leicester had moments of danger at the other end, Wilfried Ndidi's swerving half-volley flying just wide of the far post, Salah struck again on 76 minutes to put Liverpool 2-1 up.
Receiving Milner's flick, he rolled Maguire before running clear through on goal and firing low past Schmeichel into the bottom corner with his left foot to put Liverpool ahead.
The home side lived dangerously in the final 15 minutes with Robertson required to cut across substitute Shinji Okazaki as he threatened to get at Loris Karius in one of several instances in which Leicester nearly opened them up.
But they survived late pressure for a hard-fought win which extends their unbeaten streak to 15 games in all competitions and stretches their advantage over fifth-placed Spurs to four points, at least temporarily.
Unstoppable Salah at it again
We've grown so accustomed to Salah's red-hot form in front of goal that it is easy to forget in his early Liverpool days he was guilty of wasting a number of big opportunities.
Yet the reason his misses are long forgotten are because he so often makes up for them, and that was the case yet again here.
He should have done better with two first-half chances, missing the target on both occasions, but his pace, movement and sheer desire gave Maguire in particular a torrid time.
His relentless threat finally made its impact before the hour mark, showcasing his strength, patience and composure all in one go to score at the third time of asking.
And he held off Maguire to run clear and produce a brilliantly calm finish into the bottom corner less than 20 minutes later, with another defence unable to keep him out for a full 90 minutes.
Only twice in his last 17 games across all competitions has Salah not at least contributed with a goal or an assist, with a phenomenal 17 goals and five assists in that time.
In the Premier League alone, he has 17 goals - less than only Harry Kane on 18 - and five assists in only 21 appearances, and his stunning form shows no signs of slowing.
He has made more appearances than any Liverpool player, with 29 in all competitions and missed only the League Cup defeat to Leicester back in September, yet remains the liveliest and most threatening Reds player week in, week out.
It's a question of when, and not if, he will break the 30-goal barrier this term if he continues at this rate - but surely Salah is going to need a break soon to avoid an injury.
Vardy's 'big-six' form continues
Jamie Vardy quite clearly relishes the big occasions, especially when they're against Liverpool - having scored more goals against them than any other club in his career.
The England international now has 22 goals in 41 appearances against the Premier League's 'big six' - with Liverpool (seven), Arsenal (five) and Manchester City and Manchester United (both four) the teams he has been most prolific against.
It is a wonder that Liverpool have not found a way to shackle the energetic 30-year-old, given he has scored in five successive games against them.
Jürgen Klopp insisted in his pre-match press conference that the Foxes' most potent threats remain the same under Puel and that was the case here, with Vardy's pace and the inter-linking combinations between him, Riyad Mahrez and Demarai Gray in transition their main avenues of attack.
Ultimately Vardy's goal was not enough for even a point but Leicester showed glimpses of their ability going forward throughout either half, certainly enough to crank up the anxiety of the Anfield crowd.
A few well-timed blocks and interceptions meant that Leicester's counters largely amounted to nothing, with the away side managing just the one shot on target - that their early goal.
But what threat they did pose often came through their tireless front-man, who scored his 10th of the campaign - and ninth in the league.
He almost made more of another first half chance, again breaking in beyond the back-line, only for a bad touch to allow Dejan Lovren to retrieve possession.
However, the worry for Leicester must be that while Vardy continues to perform, the strain on him will only double when Riyad Mahrez gets his seemingly inevitable departure.
Puel's unbeaten streak comes to an end
As Liverpool's run was maintained, another was broken.
Claude Puel came into this game with only two managers boasting better unbeaten records than him against Liverpool, the latest of whom was George Martin in the 1950s.
He had won at Anfield with Lyon and Southampton and oversaw a Saints side that kept four clean sheets in the league and League Cup against the Reds last season.
And while it appeared for periods that his Leicester side might take his streak without defeat against Reds to seven games, Liverpool's dominance eventually took its toll on the away side.
The hosts were deserved victors despite their control suffering the occasional slip, creating higher quantity and higher quality chances but only failing to take them.
Their inability to finish their chances has cost them on previous occasions at Anfield but Salah was once again the man to be counted on with another match-winning display here.
It means that Puel has now won just one of his last five league games, suffering three defeats in the last four and keeping only two clean sheets in the 13 top-flight games he has overseen at the King Power.
While he has done well to lift Leicester into top-half contention, he must also arrest their recent slide to ensure that they don't fall back into the basement battle again.