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.
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 victory was Villa’s first in 11 matches, while Reading have now gone four league games without a win.
The Royals had 73% of possession in the first half but had nothing to show for it.
Jonathan Swift came close, forcing a close-range block from Pierluigi Gollini in the Villa goal, moments after Kodjia’s opener.
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.
Reading manager Jaap Stam:
“I think people should look at that game again. How I look at it is only one team was trying to play football and it was us.
“Fair play, how Aston Villa played, it got them a result and we know they’re a quality team that can create chances and make it difficult for you.
“But, we didn’t create a lot of chances in the first half. That’s also because the opposition sat deep and waited for us to make mistakes and play on the counter-attack.
“You need to be patient in the game – how you play and also how the opposition play. In the second half, they started to press us higher up the pitch and spaces opened up.
“The only thing I can say that we can do better is we can be more decisive defensively, winning that first ball instead of the second one.”
Aston Villa manager Steve Bruce:
“I have to pay special mention to the supporters in the last 10 minutes. I think they breathed life into the lads.
“They’ve had a tough time and we’ve got to try and restore a bit of belief and that’s all we’ve done.
“It’s nice to win a game late on as the previous management lost 10 points from goals conceded in the last minute of games. If they hadn’t done, I probably wouldn’t be here.
“I’ve been given the privilege to manage this club and I’ve now got to do my best to turn this juggernaut around.
“Let’s hope this can be the first of a few wins and we can get this season back up and running again.”