JORDAN AYEW struck a 90th minute penalty to earn Aston Villa their first away win since August 2015 and consign Jaap Stam to his first home defeat as Reading boss.
The Villans took a lead into half-time courtesy of a Jonathan Kodjia shot which deflected in off Tyler Blackett.
But Royals rallied and levelled up after the restart when Yann Kermorgant brilliantly headed in on the rebound after Danny Williams’ penalty had been saved by Pierluigi Gollini.
Just as the game looked to be heading towards a draw, Villa dug out a dramatic late winner when substitute Ayew netted from the spot after he had been tripped himself by Liam Moore.
Garath McCleary came within inches of grabbing a stoppage time equaliser but his effort flashed past the far post.
Jaap Stam named an unchanged side from the one which drew at QPR on Saturday while Steve Bruce rang the changes with five new faces coming in, many of which were enforced.
Micah Richards and Tommy Elphick missed out through injury while the suspended Jack Grealish also made way with Ross McCormack and former Reading man Aaron Tshibola dropping to the bench.
Nathan Baker, Leandro Bacuna, Alan Hutton, Rudy Gestede and Gary Gardner all came in for the visitors.
As has been the case in many games at Madejski Stadium this season, clear chances were at a premium early on with neither keeper severely tested.
John Swift fired wide while Gardner’s volley was parried by Ali Al-Habsi before the hosts began to dominate possession.
The 4,000 Villa fans grew frustrated as their side dropped deeper and deeper with Swift beginning to pull the strings in midfield so it came as a blow to fall behind before the break.
Out of nowhere, the visitors broke with Gardner clipping a ball down the line for Albert Adomah to chase.
The winger calmly looked up and rolled the ball to the unmarked Kodjia at the back post and his shot, via a wicked deflection off Blackett, nestled into the bottom corner.
Reading responded well, forcing Gollini into a double stop through Chris Gunter and Swift but the Villans went in ahead at the break.
That lead did not last long after the restart, however.
Less than 10 minutes into the second half, Beerens played the ball through for McCleary to chase and he was tripped by a sliding Aly Cissokho prompting referee Andy Woolmer to point to the spot.
Up stepped Williams, who scored a last minute winning penalty against Ipswich Town earlier this season, but this time the American was denied by Gollini.
However, Kermorgant followed in to brilliantly head back over the sprawling keeper and into the far corner.
That sparked the contest into life as the second half developed into an exciting end-to-end encounter.
George Evans and McCleary saw shots from the edge of the box parried away while Bacuna and Gardner were denied in the other box.
Reading continued to probe to try and find a way through a packed Villa defence but had to be constantly wary of the visitors’ threat on the break.
And it took a late Villa substitute to seal all three points in dramatic fashion. Ayew, a replacement for earlier scorer Kodjia on 78 minutes, danced inside Moore and was tripped by the former Leicester man.
Ayew stepped up himself and casually stroked it into the bottom corner to spark wild celebrations with some fans even encroaching onto the pitch.
Stam through on Danzell Gravenberch to try and cause some late chaos but it wasn’t to be as the Dutchman tasted defeat at Madejski Stadium for the first time.
READING: Al-Habsi; Gunter (c), Moore, van den Berg, Blackett; Evans (Gravenberch 90+1), Williams, Swift; Beerens, McCleary, Kermorgant.
Subs not used: Jaakkola, Watson, Obita, Kelly, Harriott, Samuel.
Goal: Kermorgant (54)
Yellow card: McCleary (90+2)
ASTON VILLA: Gollini; Hutton, Chester (c), Baker, Cissokho (Amavi 77); Jedinak; Adomah, Bacuna, Gardner, Kodjia (McCormack 86); Gestede (Ayew 77).
Subs not used: Bunn, Tshibola, Westwood, Green.
Goals: Kodjia (38), Ayew (pen) (90)
Yellow card: Hutton (78)
Referee: Andy Woolmer
Attendance: 20,331 (inc 4,030 away)