Reading handed Liverpool their first league defeat of the season as they claimed a richly deserved home win.
Harper took his goal superbly to give his side a two-goal cushion
Stephen Hunt's penalty put Reading in front after Jamie Carragher fouled Brynjar Gunnarsson, but Steven Gerrard soon equalised with a cool finish.
Liverpool hit the bar through Gerrard, but Kevin Doyle's glancing header on 58 minutes put Reading back in front.
James Harper scored a fine third and Reading, with the help of the post, kept the Reds at bay for the remainder.
In the build-up to the match, Reading boss Steve Coppell had asked the home fans to make more noise and his players certainly gave the supporters something to shout about with a committed and energetic team performance.
It was end-to-end stuff in the early stages, with the emphasis on speed rather than quality, and it took a defensive mistake to break the deadlock.
Liverpool boss Rafael Benitez gave young centre-back Jack Hobbs his first Premier League start, but it was a foul by the vastly experienced Carragher which led to the Reds falling behind on 15 minutes.
Carragher brought Gunnarsson down as the Reading midfielder burst forward and referee Andre Marriner, despite vehement Liverpool protests, decided the offence was inside the box, giving Hunt the chance to convert from the spot.
The goal sparked a brief purple patch for Reading as they began to stretch Liverpool, with Bobby Convey's screamer from the edge of the box going close after a precise passing move.
Reading's lead did not last long though, as their porous defence crumbled to concede their 33rd Premier League goal of the season.
Torres controlled Pepe Reina's punt upfield under no pressure from Ibrahima Sonko before squaring the ball to Gerrard, and the England midfielder shrugged off Hunt and passed into the net for his ninth goal in 10 games.
Gerrard has been in superb goalscoring form for Liverpool
Sonko's questionable challenge on Torres led to half-hearted appeals for a Liverpool penalty, but replays suggested the centre-back had got a touch of the ball.
The half ended with Liverpool well on top but they were unable to fashion a clear-cut chance despite a couple of decent self-made efforts from Andriy Voronin.
Liverpool started the second period purposefully, with Torres flashing a diving header just wide from Peter Crouch's cross.
A comical piece of defending from Gunnarsson, who played the entire Liverpool team onside from a free-kick before belatedly rushing out, gave Hobbs the chance to mark his full league debut with a goal but the 19-year-old smashed the ball into the stands.
John Arne Riise's trademark swerving free-kick drew a fine save from Hahnemann as Liverpool pressed hard for a second goal and Gerrard went even closer with a brilliant strike from distance which rattled off the bar.
The near miss proved a decisive moment as 60 seconds later Doyle just got a touch to Nicky Shorey's dangerous free-kick into the box to give his side the lead.
If there was a hint of fortune about Doyle's effort, there was no doubt whatsoever about the quality of Harper's goal soon after.
The midfielder took a clever pass back inside from Convey and outstripped Riise before clinically rounding Reina and slotting home on 66 minutes.
Liverpool tried to get back into the game, although they were not helped by Benitez's decision to bring Gerrard off with 20 minutes to go, with Harry Kewell going close and Crouch just missing making contact with a low Carragher ball into the box.
Crouch went even closer moments later as he hit the post with a well-struck effort from outside the box, but Reading were good value for a win that takes them up to 12th in the table.
Reading boss Steve Coppell:
"To get a good result against a top side is pleasing but this season is a grind - there's five more months to go.
"We needed to be seen to be having a go and I think the fans can have a few pints and be happy.
"Results against big teams won't decide our season but it's a good feeling and hopefully a solid foundation."
Liverpool boss Rafael Benitez on the two key penalty decisions:
"For me (Jamie Carragher's foul) was clearly outside the area. Normally it would be a yellow card but it wasn't because the ref wasn't sure.
"I think it was clear Fernando Torres was fouled, but we can't change the result - I won't use that as an excuse.
"But the key was that we had some chances and we could not take them. I'm not happy with the goals we conceded."
Reading: Hahnemann, Murty (Cisse 90), Sonko (Bikey 81), Ingimarsson, Shorey, Hunt, Harper, Gunnarsson, Convey (Lita 88), Doyle, Kitson.
Subs Not Used: Federici, Long.
Goals: Hunt 17 pen, Doyle 60, Harper 67.
Liverpool: Reina, Arbeloa, Carragher (Hyypia 82), Hobbs, Riise, Gerrard (Babel 71), Mascherano, Sissoko, Voronin, Torres (Kewell 61), Crouch.
Subs Not Used: Itandje, Kuyt.
Goals: Gerrard 28.
Ref: Andre Marriner (W Midlands).