Johnson netted a brilliant solo effort three minutes from time as Chelsea suffered their third defeat in four league games and also lost consecutive Premier League games at Stamford Bridge for the first time since Roman Abramovich bought the club in 2003.
Liverpool are now sixth, level with the Blues on 22 points, 12 points behind Manchester City.
Maxi Rodriguez put Liverpool ahead in the 33rd minute after a fine move involving Craig Bellamy and Luis Suarez, and the Reds were full value for their half-time lead.
Daniel Sturridge got Chelsea back on level terms with a tap-in following Florent Malouda’s cross-cum-shot 10 minutes into the second half, and the scene looked set for Fernando Torres when he and Raul Meireles were introduced with six minutes remaining.
However it was Johnson not the Iberian duo scoring against their former club as the full-back controlled Adam’s superb long pass with his first touch, nutmegged Ashley Cole with his second and then drove into the box to score with his left foot.
Liverpool started the brighter of the sides and almost exploited Chelsea’s now notoriously high defensive line when Rodriguez twice got beyond Suarez and Bellamy.
It took 10 minutes for the home side to seriously threaten, Juan Mata drilling Florent Malouda’s cross dangerously back across goal.
At the other end, Branislav Ivanovic got a vital touch on Bellamy’s cross before Johnson wasted a great opportunity to tee up a team-mate after a barnstorming run.
Liverpool, wearing black armbands in memory of the son of goalkeeper Brad Jones, who died of leukaemia on Friday, were looking more than comfortable, although Didier Drogba hit the stanchion with a free-kick some supporters thought had gone in.
John Terry, whose error cost Chelsea dearly against Arsenal in their last home game, made another gaffe in the 28th minute when he was robbed by Dirk Kuyt, but David Luiz snuffed out the Liverpool attack.
Lucas was booked for clattering into the defender but the visitors’ pressure was beginning to tell and they took the lead five minutes later after more horrendous defending.
John Obi Mikel dwelt on Petr Cech’s pass and Adam robbed him and fed Bellamy, who played a one-two with Suarez before feeding Rodriguez to clip over the goalkeeper.
An angry exchange between Terry and Bellamy, who have had more than one run in down the years, was calmed by referee Lee Probert.
With Chelsea’s title bid threatening to unravel entirely, Andre Villas-Boas hauled off Mikel for Daniel Sturridge at half-time.
It almost paid off four minutes in when Frank Lampard and Juan Mata combined to find Drogba, who curled over from a good position.
The home side still looked uncertain whenever Liverpool broke but their pressure told in the 55th minute thanks to some rotten defending from the visitors.
Malouda was allowed to advance into the box and his cross-cum-shot was tapped home by Sturridge.
A wonder-save from Jose Reina stopped Ivanovic glancing home Drogba’s free-kick two minutes later as Chelsea continued to dominate.
Ramires was booked for a late tackle on Martin Skrtel, with Kuyt following suit after hauling back Malouda.
Liverpool threw on Jordan Henderson for Bellamy in a bid to stem the tide, although Malouda went close with an audacious overhead kick.
The winger then sent a half-volley from Ivanovic’s cross back across the face of goal and over the heads of waiting team-mates as Torres and Carroll both warmed up on the touchline.
They were made to wait even longer as the next change saw Stewart Downing replace Rodriguez before Ivanovic was cautioned for a nasty tackle on Suarez.
With just six minutes remaining, Torres finally arrived – along with fellow Liverpool old boy Meireles – with Drogba and Ramires making way.
The visitors missed a great chance when Kuyt dragged wide after great work down the right from Henderson before Johnson produced one of the goals of the season to win it three minutes from time.
The full-back brought down Adam’s pinpoint crossfield ball superbly, nutmegged Cole, and drove goalward before slotting into the corner.