Jordan Ayew's late penalty gave Steve Bruce his first win as Aston Villa manager and ended Reading's unbeaten Championship home record.
Substitute Ayew was tripped by Liam Moore as he tried to get a shot away and made no mistake from the spot.
Until Ayew’s late intervention, Villa had looked on the way to a ninth draw of a drab start to life in the Championship. Instead, life in the Bruce revolution is looking up with a first win in 11 matches.
Villa had led through a deflected Jonathan Kodjia shot in the first half from Albert Adomah's pinpoint cross.
Yann Kermorgant headed Reading's equaliser from the rebound after Danny Williams had a penalty saved.
Garath McCleary came close to snatching a stoppage-time leveller for the hosts, but his low drive went inches wide of the far post.
The Royals had 73% of possession in the first half but had nothing to show for it.
A more direct approach from the hosts resulted in Aly Cissokho tripping McCleary and conceding a penalty from a searching ball into the box.
USA international Williams was denied by Gollini, but Kermorgant was alert to head in his third goal of the season.
Both sides showed the intent to go for a winner, but Reading's laboured approach continued and Villa sensed the chance to press them deep inside their own half.
Ayew replaced Rudy Gestede in attack and his weaving run into the area was ended abruptly by Moore's ill-timed tackle.
Ali Al Habsi was wrong-footed by the Ghanaian's penalty and wild celebrations ensued among Villa's travelling support of more than 4,000.