The first chance of the evening fell to former Fulham front man Pavel Pgrebnyak, but he side-footed wide from 10-yards after good work from Jobi McAnuff.
However, it was Posh who opened the scoring as Paul TAYLOR capitalised on some poor Reading defending and fired a low shot past Federici.
The lead didn't last long though, a sustained spell of Reading pressure ended with the equaliser as POGREBNYAK bundled the ball home.
Less than 60 seconds later and Posh were back in front as Lee TOMLIN volleyed at goal and Federici made a right hash of it, the ball squirming over the line.
In this crazy game, it was 2-2 moments later as a cross from POGREBNYAK somehow found it's way past Olejnik and into the back of the net.
Boyd was then gifted a fine chance to make it 3-2 after wriggling through, but he was denied by Federici. Pogrebnyak was then inches away from making it 3-2 and completing a 24 minute hat-trick, but his effort struck the post.
Brisley was then withdrawn with Joe Newell introduced. Michael Bostwick moved back alongside Knight-Percival. Boyd was afforded a free header on 34 minutes, but he powered it straight at the goalkeeper.
It was 3-2 to the Royals on 39 minutes as a cross from the left was headed past Olejnik by Knight-Percival under pressure from McCleary.
Tomlin was denied by Federici before Olejnik made a similar stop to deny a long-range effort from Guthrie. Little tested the goalkeeper in stoppage time before referee Mr D'Urso brought an end to proceedings.
Neither side made any changes at the break. Leigertwood fired wide from distance on 51 minutes after a poor Bostwick clearance. Swanson became the first player cautioned after a foul on the hour mark moments after Newell squandered a good shooting opportunity.
Posh put together a fine move on 69 minutes as Tomlin and Little combined to create a chance for Boyd, but his header landed on top of the net rather than in it. McCann then floated a free-kick over the top after a good spell of Posh pressure.
With 10 minutes remaining, Posh introduced Emile Sinclair for Ntlhe in a very bold move with Newell going back to left-back. It was Newell who had a glorious chance to level, but he side-footed McCann's corner over the top.
On 87 minutes, Swanson was denied a goal on his first start by a superb stop by Federici, who pushed the effort around the post. At the other end, Olejnik made an excellent stop with his legs to deny Hunt, diverting the ball onto the post.
Final Score: Reading 3-2 Posh
Reading: Federici, Gunter, Karacan (sub Tabb 72min), Pearce, Pogrebnyak, Leigertwood, McAnuff, McLeary (sub Hunt 61min), Gorkss, Guthrie, Harte. Unused subs: Shorey, Mariappa, Le Fondre, McCarthy, Cummings.
Posh: Olejnik, Little, Brisley (sub Newell 30min), Knight-Percival, Ntlhe (sub Sinclair 81min), McCann, Bostwick, Tomlin, Swanson, Boyd, Taylor. Unused subs: Day, Clarke-Harris, Richens, Grant, Gordon.