Liverpool, seeking a fifth successive Premier League win, were sloppy right from the kick-off when Fabio Aurelio was caught in possession by Kevin Doyle, whose cross was cut out by Martin Skrtel.
The home side were certainly caught napping on five minutes when Reading took the lead through a stunning goal from Matejovsky.
Stephen Hunt was fouled by Alvaro Arbeloa near the left-hand corner flag, and a training-ground routine saw the ball pulled back to the edge of the box where Czech international Matejovsky blasted home a first-time shot for his first goal since joining the Royals.
Liverpool regained their composure after that early shock and Steven Gerrard's slide-rule pass inside Andre Bikey found Torres, who was thwarted by the alert Marcus Hahnemann who dashed from his line and spread himself to save.
More sloppy Liverpool defending might have allowed Reading to double their lead, but Shane Long's pass to the unmarked John Oster was just too heavy.
Liverpool then swept down the field almost immediately to level through another stunning goal from Mascherano.
The Argentine stepped inside Hunt and shifted the ball on to his right foot to unleash an unstoppable shot for his first goal for Liverpool.
Mascherano was growing in influence and his inch-perfect cross-field pass picked out Ryan Babel, who cut inside to fire in a powerful shot which was beaten away by Hahnemann.
Liverpool finished the half strongly and Oster's error gifted the ball to Xabi Alonso who dipped a volley inches over the bar from 25 yards.
It took Liverpool just three minutes of the second half to turn the game on its head and take the lead, with Torres scoring his ninth goal in six games.
Kevin Doyle and Xabi Alonso get to grips with each other
The Spanish striker was fouled 30 yards from goal by Liam Rosenior and, as Gerrard curled in the free-kick, Torres lost his marker to plant an unopposed header past Hahnemann from eight yards.
In the process he became the first Liverpool player to score 20 goals in a season since Robbie Fowler in 1996.
Reading's afternoon took an even more sour note when Long's reaction on being substituted was to rip off his shirt and throw it in the direction of boss Steve Coppell.
Liverpool were firmly in control and were searching for the comfort of a third goal.
It might have arrived had Babel's first touch been better when found by Gerrard, while Hahnemann parried a powerful drive from Aurelio and enjoyed a stroke of luck as Dirk Kuyt headed the loose ball wide of a gaping goal.
There was still some defending to do to but Reading's appeals for a penalty were half-hearted at best as Jamie Carragher strongly stood his ground when Doyle threatened.
In a frantic finale, Dave Kitson saw his header saved by Jose Reina as Reading keeper Hahnemann added his weight at a corner.
And as the ball was cleared to Alonso, his effort on an unguarded goal from deep inside the Liverpool half sailed just wide.
Liverpool boss Rafael Benitez: "We know that Mascherano has a good shot on him and we've been encouraging him to shoot more when he sees the target.
"Fernando Torres scored another crucial goal, but he's scoring lots of goals thanks to his team-mates.
"As for their penalty claim, Steve told me the ball hit him with his arm against his chest, it was not stuck out to deflect the ball."
Reading boss Steve Coppell moans at the referee and striker Shane Long: "That penalty was stitched on, the ball was heading for goal and it struck Steven Gerrard's arm.
"Shane was frusrated with the officials but I've told him I never want to see anything like that again, and I won't."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.