Johnson’s stooping header five minutes from time earned Liverpool’s first win of November in all competitions and ended a run of three consecutive Premier League defeats to ease the pressure on manager Brendan Rodgers.
Rodgers had responded to Liverpool’s recent poor form with a surprise team selection as he dropped Steven Gerrard from his starting line-up.
The Liverpool skipper, who made his debut for the Reds exactly 16 years ago to the day against Blackburn, relinquished the armband to fellow midfielder Jordan Henderson.
Rodgers said before kick-off he wanted “to freshen up team” and admitted Gerrard, who is out of contract at Anfield in June next year, “can’t play every game at this stage of his career”.
With Lucas Leiva and Joe Allen shielding Liverpool’s back four the hosts looked to have more defensive solidity than in recent weeks.
However, they also lacked a cutting edge in attack and the result was the first 45 minutes failed to yield a single shot on target by either side.
Stoke were dealt a blow in the 22nd minute when midfielder Steve Sidwell injured his knee after a collision with Reds striker Rickie Lambert and was replaced by Glenn Whelan.
Liverpool were presented with a free-kick within shooting range shortly after, but Lambert fired his effort high into the crowd.
Philippe Coutinho, Liverpool’s most impressive performer in a subdued first half, injected a bit of life on the stroke of half-time with a jinking run toward goal only to be dispossessed at the key moment.
– Higher tempo -The home side started the second half with a higher tempo, and Henderson went close with a left-foot shot from the edge of area which went just past a post.
With Liverpool more expansive, Stoke also showed greater ambition and Reds goalkeeper Simon Mignolet saved well at his near post from Mame Biram Diouf’s low effort.
Stoke, who had not scored in their previous eight league matches at Anfield, then struck a post on the hour when Bojan Krkic burst clear into the penalty area.
That seemed to shake Liverpool into life and they created a succession of chances from which they really should have scored.
A neat passing move saw Lucas bring a point-blank save out of Asmir Begovic and the Stoke goalkeeper then dived to gather Lambert’s skidding effort.
Raheem Sterling’s influence on the game grew and he teed up Allen inside the six-yard box, but with the goal at his mercy the Liverpool midfielder fired over the crossbar.
Gerrard replaced Lucas with 16 minutes remaining, although it was Stoke that initially threatened following his arrival as Diouf’s shot on the turn was cleared off the line by Sterling.
However, Liverpool’s overall pressure finally told when right-back Johnson put them ahead in the 85th minute.
Henderson’s high cross was met by Lambert and his header bounced down off the bar towards Johnson, who stooped to head the ball over the line from close range.
Stoke threw everything at Liverpool in the remaining minutes but the home side hung to secure a vital three points which took some of the heat off Rodgers, while also raising questions about Gerrard’s future.