Villa were second best for much of the first half, but kept the Canaries at arm's length and edged in front 10 minutes into the second period when Agbonlahor lashed home a 25-yard drive.
Norwich levelled from the penalty spot through Grant Holt, but with just one minute left on the clock Villa snatched all three points as Agbonlahor raced clear and drilled low across Mark Bunn into the bottom corner.
The home side started brightly, with wingers Anthony Pilkington and Robert Snodgrass dangerous down the flanks. Villa, however, looked threatening on the break as Agbonlahor's shot was blocked behind.
It was not until after the interval that the game sprang to life, though, with Villa opening up the Norwich defence at the start of the second period when Christian Benteke waltzed into the penalty area, only to then shoot tamely at Bunn from 10 yards out.
The visitors did break the deadlock on 55 minutes. Agbonlahor picked the ball up just inside the Norwich half and, as the defenders backed off, the Villa winger surged forwards before unleashing a superb strike into the bottom corner from 25 yards.
Norwich looked for an immediate response, but Wes Hoolahan failed to connect with a deep cross from the left after arriving unmarked at the back post.
Villa, though, should have made it 2-0 moments later when Agbonlahor darted away down the left and floated a lovely ball back across the face of goal - where Andreas Weimann somehow sent his half-volley over the bar from two yards.
Benteke and Norwich defender Sebastien Bassong got involved in an unnecessary confrontation, with both players raising hands and were somewhat fortunate to only be shown yellow cards.
With 20 minutes left, Kei Kamara replaced Hoolahan - a change which was greeted with chants of "you don't know what you are doing" by some in the home crowd.
Not long after, those same supporters were in more positive mood as Holt equalised from the spot on 74 minutes.
Snodgrass got away down the right and cut back into the area, where he was bundled over by Joe Bennett.
Holt had missed Norwich's only other penalty this season, in stoppage-time at Carrow Road against Southampton, but he made no mistake this time as he crashed the ball into the bottom left corner.
Both sides pressed for what would be a crucial winner in their battle for Premier League safety. And it was Agbonlahor who secured a crucial three points for Villa when he got goalside of Bassong, before rolling the ball into the far corner.
Norwich pressed in stoppage-time, with Holt's header floating wide as Villa closed out for a hard-earned victory.