The 27-year-old, who scored the only goal in a 1-0 win at the Stadium of Light last season, capitalised on Lee Cattermole's calamitous error to ensure victory with a 15th-minute strike.
However, the Black Cats could count themselves desperately unfortunate not to have emerged with a point after substitute Fabio Borini had what looked to be a perfectly good 52nd-minute equaliser ruled out for offside.
It was a first win in six attempts in the Barclays Premier League for Villa, who passed up a series of late chances to do so more comfortably, but it left Gus Poyet's men stranded at the foot of the table with their survival hopes having suffered a serious setback.
Sunderland ran out hoping to start the new year as they had ended the last after taking four points from difficult trips to Everton and Cardiff to rekindle their hopes of escaping the drop.
Poyet made changes after the 2-2 draw in South Wales, which saw his side score twice in the closing stages to snatch a draw, with one of them in particular causing raised eyebrows as South Korea international striker Ji Dong-won was handed a rare start.
However, the manager stuck to his favoured 4-1-4-1 formation with Ji lining up on the right side of midfield and Steven Fletcher operating as a lone striker, and the initial signs were positive.
Emanuele Giaccherini dragged a sixth-minute shot from distance just wide and Fletcher, who started the fightback at the Cardiff City Stadium with his third goal of the season, could have broken the deadlock two minutes later, but steered his effort past the far post with defender Matthew Lowton doing well not to turn the ball into his own net.
Ji, who famously scored a New Year's Day winner against Manchester City at the Stadium of Light two years ago, passed up an opportunity to repeat the feat when he blazed high and wide at the far post with nine minutes gone.
But all the good work was undone on the quarter-hour when Black Cats skipper Cattermole miscontrolled Valentin Roberge's pass and allowed Agbonlahor to round keeper Vito Mannone and walk the ball into the empty net.
Jack Colback, whose deflected attempt secured a point at Cardiff, was not so fortune with 17 minutes gone when his effort cannoned off defender Ron Vlaar and flew wide, but Leandro Bacuna came close to extending the visitors' lead seconds later as Villa's pace on the counter hurt Sunderland, and not for the last time.
Bacuna only just failed to get a touch to Ashley Westwood's 29th-minute cross in front of goal, but the home side gradually worked their way back into the game and Ki Sung-yueng forced a save from keeper Brad Guzan and a block from Vlaar in quick succession.
But it was Ji who could have restored parity three minutes before the break, only for striker Christian Benteke to throw himself into the ball's path and rescue Villa.
Mannone came to Sunderland's rescue within three minutes of the restart when he dived to his left to turn away Bacuna's well-struck drive, but the home side responded and Ji had appeals for a penalty for handball against Lowton correctly waved away by referee Mike Jones.
The Black Cats looked to get the rough end of a tight offside call with 52 minutes gone when Borini, who had replaced Cattermole at the break, stabbed home from Fletcher's knock-down with replays suggesting he had been harshly done to.
With Sunderland pushing men forward in the search for an equaliser, the game opened up even more and they continued to look vulnerable to the counter-attack, but Borini saw a shot blocked by Nathan Baker and Phil Bardsley fired wide from the resulting corner.
The game became increasingly niggly as time wore on with Ki being pole-axed by Agbonlahor's flying elbow as he turned him on halfway and earning a booking for his furious protestations.
Ji made way for Jozy Altidore with 23 minutes remaining, but it was compatriot Ki who went close two minutes later with a strike from 20 yards.
But the game would have been over with 72 minutes gone had Bardsley not headed Benteke's shot off the line after the striker had left Roberge for dead and then turned him inside-out to create the opening.
Mannone had to claw Marc Albrighton's fizzing shot out of his top corner with seven minutes remaining, and the substitute really should have wrapped up the win when he went one-on-one with the keeper, but wastefully failed to hit the target.