Reading lost ground to Southampton at the top of the Championship as their 10-match unbeaten run came to an end at Peterborough.
The second-placed Royals looked set to continue their good form when Noel Hunt put them ahead after 20 minutes.
But George Boyd equalised within five minutes, and Tyrone Barnett scored for a third successive game to give Posh a half-time advantage.
Paul Taylor scored on the break late on to secure victory for the hosts.
Reading had the best of the early exchanges, Jobi McAnuff and Mikele Leigertwood both firing narrowly wide, before they capped off their early pressure with a goal.
Jimmy Kebe's deft turn set him loose on the Peterborough goal, Paul Jones was only able to parry his shot into Hunt's path, and the striker finished with ease.
Jones was called into action again shortly afterwards, tipping away Jem Karacan's drive from outside the area.
However, Peterborough were to turn the game on its head from two corners in quick succession.
Shaun Brisley nodded Grant McCann's centre across the area for Boyd to lash home, before Barnett powered another McCann ball past Adam Federici.
Did you know
Reading had won nine and drawn one of their last 10 games - their last defeat had been at home to Hull on 21 January
Federici then saved well from Lee Frecklington and Lee Tomlin as the home side finished the half brightly.
Reading pressed for an equaliser in the second half, Ian Harte's free-kick being diverted wide before Leigertwood missed from inside the box.
But it was Peterborough who struck the killer blow, Paul Taylor breaking past Harte to collect a long ball, before slotting in under Federici.
Peterborough boss Darren Ferguson: "I didn't know until after the game that this was my 100th win but it was a terrific way to reach a milestone like that.
"We convincingly beat the most consistent team in the country and again proved that we are capable of beating any side at this level - and now the challenge for us is to develop the sort of consistency that Reading have shown."
Reading boss Brian McDermott: "I can't fault the lads in the slightest. We have been on a terrific run to get ourselves into a great position and nothing has changed.
"We were 20 points off the pace at one point so the players deserve great credit for what they have done.
"We didn't have the best of nights but we'll certainly bounce back and I don't want to take anything away from Peterborough who played very well."
- 28 Jones
- 05 Zakuani
- 18 Brisley
- 27 Alcock
- 11 McCann
- 14 Rowe
- 23 Frecklington
- 08 Tomlin (Ball - 83' )
- 10 Boyd
- 20 Barnett
- 26 Taylor (Sinclair - 89' )
- 01 Lewis
- 02 Little
- 21 Kearns
- 09 Ball
- 12 Sinclair
- 01 Federici
- 05 Pearce
- 17 Gorkss
- 23 Harte
- 04 Karacan
- 08 Leigertwood
- 11 McAnuff
- 14 Kebe
- 26 Mullins (Le Fondre - 68' )
- 10 Hunt
- 33 Roberts (Church - 84' )
- 31 Andersen
- 07 Tabb
- 19 Robson-Kanu
- 09 Le Fondre
- 18 Church
Live Text Commentary
Full Time The referee ends the match.90:00 +3:10
Jobi McAnuff takes a shot.90:00 +2:08
Jimmy Kebe produces a right-footed shot from just outside the penalty area that goes harmlessly over the target.90:00 +1:46
Lee Frecklington gives away a free kick for an unfair challenge on Noel Hunt. Free kick taken by Ian Harte.90:00 +0:41
Effort on goal by Simon Church from inside the penalty area goes harmlessly over the bar.89:26
The ball is sent over by Lee Frecklington, Headed effort from deep inside the penalty area by Tyrone Barnett goes harmlessly over the crossbar.88:39
Direct free kick taken by Craig Alcock.88:39 Substitution
Substitution Emile Sinclair replaces Paul Taylor.88:39
Noel Hunt is penalised for handball and concedes a free kick.85:06
Corner taken by Ian Harte, Tyrone Barnett manages to make a clearance.83:19 Substitution
Substitution Simon Church is brought on as a substitute for Jason Roberts.82:38 Substitution
Substitution David Ball comes on in place of Lee Tomlin.81:53
Assist by George Boyd.81:53 Goal scored
Goal! - Paul Taylor - Peterboro 3 - 1 Reading Paul Taylor fires in a goal from inside the box to the bottom right corner of the goal. Peterborough 3-1 Reading.78:04
Inswinging corner taken from the right by-line by Ian Harte, Craig Alcock makes a clearance.77:32
The ball is sent over by Jobi McAnuff, Lee Frecklington manages to make a clearance.77:22
Jem Karacan sends in a cross.77:07
Centre by Paul Taylor, save by Adam Federici.74:35
The ball is delivered by Jimmy Kebe, clearance by Gabriel Zakuani.74:14
Outswinging corner taken left-footed by Ian Harte, Shaun Brisley makes a clearance.
The ball is crossed by Ian Harte.73:20
Jason Roberts produces a cross, Craig Alcock makes a clearance.71:44
Mikele Leigertwood produces a right-footed shot from the edge of the box and misses to the left of the target.71:22
The ball is delivered by Jimmy Kebe, clearance made by Shaun Brisley.70:52
The ball is sent over by Lee Frecklington, Jem Karacan manages to make a clearance.69:03
Lee Frecklington concedes a free kick for a foul on Jem Karacan. Direct free kick taken by Ian Harte.67:37 Substitution
Substitution Adam Le Fondre replaces Hayden Mullins.67:31
A cross is delivered by Jimmy Kebe, Lee Frecklington gets a block in.66:32
The ball is crossed by Mikele Leigertwood, Shaun Brisley manages to make a clearance.66:02
Corner taken left-footed by Ian Harte from the right by-line, Paul Jones makes a save.65:01
Free kick awarded for an unfair challenge on Ian Harte by Tommy Rowe. The free kick is swung in right-footed by Ian Harte, blocked by Tyrone Barnett.62:01
Free kick awarded for an unfair challenge on Lee Frecklington by Ian Harte. Free kick taken by Craig Alcock.59:18
Effort from inside the box by Tyrone Barnett bounces off the post.57:26
The ball is crossed by Hayden Mullins, Shaun Brisley makes a clearance.56:57
Ian Harte sends in a cross, Tommy Rowe manages to make a clearance.55:07
Foul by Kaspars Gorkss on Tyrone Barnett, free kick awarded. Direct free kick taken by Craig Alcock.52:50
The ball is sent over by Jimmy Kebe, clearance made by Tommy Rowe.51:23
Free kick awarded for a foul by Jason Roberts on Gabriel Zakuani. Direct free kick taken by Paul Jones.49:43
Jobi McAnuff is penalised for handball and concedes a free kick. Grant McCann restarts play with the free kick.49:12
Centre by Jimmy Kebe, save by Paul Jones.47:24
Inswinging corner taken left-footed by Ian Harte from the right by-line to the near post, clearance by Grant McCann.47:15
Jobi McAnuff sends in a cross, clearance by Tommy Rowe.47:08
The offside flag is raised against Noel Hunt. Paul Jones takes the free kick.45:45
Jobi McAnuff fouled by Lee Tomlin, the ref awards a free kick. Direct free kick taken by Adam Federici.45:01
The referee gets the second half underway.45:00 +2:22 Half time
Half Time The match has reached half-time.44:23
The ball is crossed by Ian Harte, Shaun Brisley manages to make a clearance.42:24
Corner taken by Ian Harte from the left by-line, free kick awarded for a foul by Alex Pearce on Gabriel Zakuani. Free kick taken by Paul Jones.42:13
Jimmy Kebe takes a shot. Save by Paul Jones.40:17
The official flags Paul Taylor offside. Indirect free kick taken by Adam Federici.39:14
Outswinging corner taken from the left by-line by Grant McCann.38:56
Lee Tomlin takes a shot. Save by Adam Federici.37:33
Jason Roberts takes a shot. Save by Paul Jones.37:26
The ball is sent over by Noel Hunt, clearance by Shaun Brisley.35:40
Inswinging corner taken by Grant McCann from the right by-line.35:27
Grant McCann takes a shot. Alex Pearce gets a block in.35:18
Lee Frecklington takes a shot. Adam Federici makes a save.33:42
Grant McCann provided the assist for the goal.33:42 Goal scored
Goal! - Tyrone Barnett - Peterboro 2 - 1 Reading Tyrone Barnett finds the net with a headed goal from close in. Peterborough 2-1 Reading.33:09
Grant McCann takes a outswinging corner to the near post,32:21
Kaspars Gorkss challenges Tyrone Barnett unfairly and gives away a free kick. Grant McCann crosses the ball from the free kick right-footed from right channel, clearance made by Hayden Mullins.30:25
Grant McCann takes a shot. Save by Adam Federici.29:01
Mikele Leigertwood takes a shot. Blocked by Craig Alcock.28:55
Jimmy Kebe crosses the ball, clearance made by Shaun Brisley.26:34
Lee Frecklington produces a right-footed shot from just outside the box that misses to the right of the goal.26:13
Ian Harte produces a cross, clearance made by Gabriel Zakuani.24:49
Shaun Brisley provided the assist for the goal.24:49 Goal scored
Goal! - George Boyd - Peterboro 1 - 1 Reading Goal scored by George Boyd from deep inside the penalty area high into the middle of the goal. Peterborough 1-1 Reading.24:10
Shaun Brisley delivers the ball,23:50
Jimmy Kebe crosses the ball, clearance made by Tyrone Barnett.23:29
Ian Harte takes the inswinging corner, Tyrone Barnett makes a clearance.23:00
The ball is crossed by Hayden Mullins, Jobi McAnuff takes a shot. Gabriel Zakuani gets a block in.21:59
Gabriel Zakuani gives away a free kick for an unfair challenge on Jason Roberts. Adam Federici takes the free kick.21:19
Corner taken right-footed by Jobi McAnuff, save made by Paul Jones.21:08
Jem Karacan takes a shot. Paul Jones makes a save.19:07
Assist on the goal came from Jimmy Kebe.19:07 Goal scored
Goal! - Noel Hunt - Peterboro 0 - 1 Reading Noel Hunt grabs a goal from close range to the bottom right corner of the goal. Peterborough 0-1 Reading.18:04
Shaun Brisley concedes a free kick for a foul on Jason Roberts. Direct free kick taken by Alex Pearce.16:53
Grant McCann takes a shot. Adam Federici makes a save.16:22
Mikele Leigertwood produces a right-footed shot from just outside the box that goes wide left of the goal.16:04
A cross is delivered by Jimmy Kebe, clearance made by Shaun Brisley.14:05
Unfair challenge on Kaspars Gorkss by Tyrone Barnett results in a free kick. Direct free kick taken by Adam Federici.13:52
Jobi McAnuff has an effort at goal from just outside the area which goes wide of the left-hand post.13:38
A cross is delivered by Jobi McAnuff, Tommy Rowe makes a clearance.12:59
The assistant referee signals for offside against Lee Tomlin. Adam Federici restarts play with the free kick.11:11
Free kick awarded for an unfair challenge on Jason Roberts by Tommy Rowe. Direct free kick taken by Adam Federici.10:22
Jimmy Kebe concedes a free kick for a foul on Tommy Rowe. Tommy Rowe takes the free kick.3:46
Jason Roberts gives away a free kick for an unfair challenge on Gabriel Zakuani. Tommy Rowe restarts play with the free kick.1:08
The ball is sent over by Craig Alcock.0:56
A cross is delivered by Tommy Rowe, Ian Harte manages to make a clearance.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers