Torres only came on with 15 minutes to go and by that time his side were chasing victory after David Nugent's opener had been cancelled out by Fabio Aurelio.
The Spain striker then set up Dirk Kuyt before heading home in stoppage-time.
It proved to be a masterstroke for Rafael Benitez to leave Torres on the bench - but it was the closest of calls.
Torres was tired towards the end of the midweek FA Cup defeat to Everton and has international duty this week when Spain face England - but he was still fit enough to be among the substitutes at Fratton Park.
His cameo has put the psychological pressure on Manchester United as Liverpool overtake Sir Alex Ferguson's men at the summit before their match at West Ham this weekend.
The spotlight was inevitably on Benitez for his brave move.
He offloaded Robbie Keane back to Tottenham, then saw talisman Steven Gerrard injured with a hamstring strain - so resting a matchwinner like Torres for 75 minutes was a huge gamble.
Keane would have been almost certain to have played against Pompey if he was still at the club, but instead French youngster David Ngog endured a miserable first league start.
Torres was not the only change, with Benitez radically altering his team and leaving the likes of Albert Riera, Xabi Alonso and Kuyt on the bench.
He also started with three centre-backs and at first the formation looked shaky when Nugent and Peter Crouch got a couple of shots away.
But Pompey were still struggling for confidence as they looked to end a run of failing to win a league game since November - and even a second string Liverpool were bound to create chances.
Pompey goalkeeper David James, equalling Gary Speed's Premier League record of 535 appearances, was left stranded when Liverpool put their first purposeful move together.
Alvaro Arbeloa's cross from the right found Yossi Benayoun unmarked in the penalty area but his finish went into the side-netting after James had slipped.
James would have had no chance either when Aurelio's free-kick curled just wide of the upright. The Brazilian was off target again in the 17th minute when Ngog's cross found its way behind the Pompey defence.
Javier Mascherano is not known for his goalscoring but he had James at full stretch when he was given room 30 yards from goal, with the Pompey stopper diverting the effort for a corner.
Ngog's evening came to an end before the hour mark, with Kuyt brought on for the visitors - and it nearly brought an instant reward.
Benayoun breezed past Hreidarsson and Sylvain Distin before laying the ball off to Kuyt. The substitute crossed to leave an open goal for Ryan Babel from three yards out - but the winger somehow managed to nutmeg himself as he finished.
Nugent made Liverpool pay with his 62nd-minute opener. Crouch had held the ball up before playing a reverse ball to his strike partner, who slotted his finish calmly past Reina.
It was a sweet strike for the Evertonian, who taunted Liverpool fans in the first half about their FA Cup defeat this week.
Liverpool's way back into the match came after an awful backpass from Crouch.
James had to handle to stop Kuyt from finishing, with Webb alert to the offence. Alonso, on as a substitute, tapped the ball for Aurelio to smash into the bottom corner.
Kuyt had the ball in the net but was harshly given offside after racing onto Aurelio's throughball.
Torres came on for the last quarter of an hour for Babel, but Pompey were ahead again with 12 minutes remaining.
Nadir Belhadj swung over a free-kick after Glen Johnson was fouled, with Hreidarsson losing his marker and heading past a wrongfooted Reina.
Kuyt levelled in the 85th minute after Torres crossed from the right and the Dutchman finished into James' near post.
Then came the final twist, with Torres' powerful header from Benayoun's cross finding a way past James.