Jurgen Klopp named a strong lineup despite the importance of Wednesday's game against Roma, with Danny Ings in for Sadio Mane the only change up front. Gini Wijnaldum started in place of Alex Oxlade-Chamberlain, who has been ruled out for the season. Kurt Zouma replaced Glen Johnson in Stoke's only change.
Alberto Moreno then swung in a lovely cross which just eluded Salah as the Reds sought to take early advantage. But Stoke looked dangerous in attack too and Mame Biram Diouf probably should have done better with a Moritz Bauer cross, heading harmlessly into the side-netting.
A nice move for Liverpool culminated in Trent Alexander-Arnold latching onto a slipped pass from Salah, but the full back was unable to score his second Premier League goal. Stoke's answer to Salah was Xherdan Shaqiri, who played a dangerous ball across the box which even Peter Crouch couldn't extend to reach.
A concerted period of pressure from the home side came to an end when Wijnaldum failed to test Jack Butland, before the England keeper made an error which gifted Salah the ball on the edge of the box. Erik Pieters cynically fouled the Egyptian, who hit the side netting with his subsequent free kick.
Liverpool thought they had the opener as Wijnaldum's deflected shot arrived in the path of Ings, but his emphatic finish was correctly ruled out for offside. Concern was etched on Jurgen Klopp's face as Jordan Henderson went down in pain, but he was alright to carry on.
Stoke made it to half time with the game goalless - an impressive feat against this Liverpool side.
Joe Allen and Bruno Martins Indi both suffered early second half injuries, with the latter unable to continue; Ramadan Sobhi replaced him. Salah drilled another shot wide from a half-cleared corner as Liverpool's eye for goal continued to elude them.
Sobhi provided a fresh threat for the visitors, wriggling to the byline before poking a shot goalwards, but it was straight at Loris Karius. Nathaniel Clyne and James Milner were brought on for Alexander-Arnold and Ings as Klopp looked to inject fresh impetus into Liverpool.
The chance rate dropped from 'few and far between' to 'non-existent' as both sides seemed to wilt in the early afternoon sun. A Moreno cross nearly reached Salah but Zouma was able to steer it behind.
Liverpool should have had a penalty when a Wijnaldum cross clearly struck the arm of Pieters, but the referee didn't give it. At the other end, a Diouf cross found Shawcross at the far post but he could only poke it wide with the goal gaping. It capped a frustrating afternoon for both teams.
Despite a gutsy performance and a fine result, the point does little for Stoke's survival hopes. They are three points adrift of Swansea and their fate is out of their hands - even two wins from their last two games may not be enough to stay up.
One change to today's starting XI against @LFC as @KurtZouma replaces Glen Johnson, who misses out this afternoon.— Stoke City FC (@stokecity) April 28, 2018
Charlie Adam returns to the bench at his former club.#SCFC ⚪️ pic.twitter.com/SABn9afU8I