Premier League: Sunderland 0 Aston Villa 1
It was a deserved win for the West Midlands side as they held on to the slender advantage, handed to them by Agbonlahor in the 56th minute.
For the home side it was another worrying result as they struggled to carve out chances in front of goal.
Sunderland thought they had snatched the lead in the fourth minute, but top-scorer Steven Fletcher was flagged offside after latching on to Stephane Sessegnon's lofted through ball.
The visitors soon settled into their stride as Christian Benteke set up Agbonlahor, whose snap shot was deflected over by a Phil Bardsley block.
Sunderland responded with attacks of their own, first through a Craig Gardner effort before captain Lee Cattermole curled the ball just wide from the edge of the area.
Andreas Weimann stung the palms of Simon Mignolet after spinning away from two Sunderland defenders just before half-time, but it was a different story 10 minutes after the interval as Agbonlahor broke the deadlock.
The impressive Benteke met a deep cross from the right and his header across goal fell straight to the English forward, who made no mistake from close range.
Sunderland responded with vigour and had a penalty appeal turned down in the 64th minute after Adam Johnson's cross appeared to strike Benteke on the arm inside the penalty area.
But again they were severely lacking invention in the final third with Fletcher and Sessegnon barely offered a clear-cut opportunity throughout.
It was not until Louis Saha came off the bench that Sunderland looked threatening, the Frenchman heading Sebastian Larsson's free-kick over the bar.
Villa still looked dangerous on the break and a sloppy pass from Cattermole allowed Stephen Ireland to set up Weimann, but Mignolet again denied the Austrian with a smart save.
Despite some relentless pressure from Sunderland in the dying moments, Villa held on to secure a priceless three points and their first away win since January.