The striker capitalised on a calamitous mistake from Lee Cattermole to score his third goal of the season and end a run of five matches without a win for his side.
Cattermole lost control of a pass from Valentin Roberge 25 yards from goal and Agbonlahor picked up the loose ball before coolly rounding Vito Mannone and slotting home.
The closest the hosts came was through Fabio Borini, who saw an effort disallowed for offside shortly after half-time, with Gus Poyet's side otherwise restricted to shots from range as they fell to their first defeat in five league games.
Villa made two alterations with Ron Vlaar and Christian Benteke returning from respective calf and knee injuries, while Sunderland brought Jack Colback and Steven Fletcher in after their goalscoring heroics at Cardiff City on Saturday, the Scot going closest early on after being played in by Emanuele Giaccherini in the seventh minute.
But it was the visitors who went in front after 15 minutes as Cattermole miscontrolled just outside the area, allowing Agbonlahor to nip in, round Mannone and slide the ball into an empty net.
Villa were indebted to Vlaar for denying Colback, playing his 100th Sunderland game, as Poyet's side responded immediately, before Leandro Bacuna almost doubled the lead three minutes later, firing just wide of the post after a driving run down the left.
Agbonlahor went close again in the 25th minute, testing Mannone with a fierce drive after linking up with Benteke on the edge of the box before last-ditch defending saved Villa once more three minutes before the break, the Belgian getting in the way of Ji Dong-Won's effort from 10 yards.
The visitors continued to threaten after the interval, Bacuna's 30-yard effort taking a wicked deflection off Roberge which caused Mannone to scramble to his left and parry behind.
Borini, a half-time substitute in place of Cattermole, had a goal ruled out in the 52nd minute, the striker straying half a yard offside when getting on the end of Ji's knock down.
In the 72nd minute, Benteke came close to ending his run of 11 matches without a goal, curling the ball beyond Mannone only to see Phil Bardsley head the ball off the line.
The hosts struggled to make any inroads into the Villa defence and it was the visitors who looked more likely to snatch a second on the counter-attack, substitute Marc Albrighton blazing over the crossbar when clear on goal with eight minutes remaining, but it mattered little as Sunderland's winless run against the Birmingham club was extended to six matches.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.