Torres twisted and turned to get the better of Aaron Hughes, before beating goalkeeper Antti Niemi with a low shot.
Peter Crouch, who hit the bar with a first-half header, won the penalty when he was fouled by Carlos Bocanegra and Gerrard's spot-kick was unstoppable.
Niemi was superb for Fulham in goal, making a series of top-class saves.
But not for the first time this season Fulham, who now have conceded goals in the last 10 minutes seven times this season, failed to last the course. Deploying David Healy and Shefki Kuqi in attack, Fulham tried to get their midfield players to support them as quickly as possible in the early stages of the game.
Kuqi's aerial presence caused Liverpool problems, while former Reds midfielder Danny Murphy tried his luck with a couple of long-range efforts. Kuqi worked tirelessly for Fulham, tracking back to help out his defenders. And Fulham's defensive organisation ensured Liverpool struggled to create clear chances in an even first half, ensuring Niemi had only one real save to make in the opening period from Sami Hyypia's shot.
Andriy Voronin briefly unsettled the Fuham defence when he emerged unmarked at the far post, but after controlling the ball on his chest he misplaced his pass.
Even so Liverpool were unlucky not to go in at the interval ahead when Crouch's looping header bounced off the bar. Just after the restart Crouch headed the ball down to Voronin, but the Ukrainian forward's shot was comfortably gathered by Niemi.
On 55 minutes the Fulham keeper had an altogehter less comfortable moment when he was momentarily deceived by Fabio Aurelio's free-kick, before recovering to make the save. Soon afterwards Niemi had to push the ball over the bar from Voronin's rising shot, though Voronin was to completely miss his kick when Liverpool's next chance arrived.
Niemi's best save of the game came from Yossi's Benayoun's chip which looked goalbound before the Finn got one hand to the ball and pushed it past the post.
Benayoun had an influential game for Liverpool and a clever pass released Voronin, but the Ukrainian's shot flashed past the post.
On came Ryan Babel and Torres and the Spanish striker's arrival proved decisive. Liverpool goalkeeper Jose Reina played a part in Torres' goal, his huge kick finding his Spanish compatriot deep in the Fulham half. Torres' tricky bamboozled Hughes and having created space the former Atletico Madrid beat Niemi with a low shot inside the near post.
Crouch was then tripped by Bocanegra and Gerrard's powerful penalty gave Niemi no chance.
Liverpool boss Rafael Benitez:"Their keeper was really good but we were creating chances and at the end we could score a second goal because they were a little bit open.
"We knew Fulham would work hard till the end but we needed to keep going, passing the ball and trying to do our job. "It's always important to win, but especially when you know that for 10-15 days you won't have another game, so our people will be happy for at least 10-15 days!"
Fulham boss Lawrie Sanchez:"I thought we pretty much contained them in the second half but the problem was we thought we had coped so well we could go on and nick it.
"We're not a bad side but we're not quite at the level where can live with a team like Liverpool for 90 minutes.
"But overall I'm pleased with the performance. When you come to a place like this you know they can go away from teams but we stayed with them until the end."
Liverpool: Reina, Arbeloa, Carragher, Hyypia, Aurelio, Benayoun, Mascherano (Lucas 81), Gerrard, Riise (Babel 62), Voronin (Torres 70), Crouch.Subs Not Used: Martin, Finnan.
Goals: Torres 81, Gerrard 85 pen.
Fulham: Niemi, Baird, Hughes, Stefanovic, Bocanegra, Davies, Davis, Murphy, Dempsey (Kamara 69), Kuqi, Healy (Bouazza 60).Subs Not Used: Warner, Smertin, Leijer.
Booked: Murphy, Dempsey.
Att: 43,073
Ref: Steve Tanner (Somerset).