Gabby Agbonlahor gave Villa a flying start to 2014 with a 15th minute winner which made it a Happy New Year for the boys in claret and blue.
The striker took advantage of a mix-up in the Sunderland defence to slot home the only goal at the Stadium of Light.
It was his third goal in his last four appearances against the Black Cats, and despite the home side's territorial superiority, Paul Lambert's men were good value for the points.
Fit-again Christian Benteke, in fact, might easily have doubled the lead with a 73nd minute shot that was headed off the line by Phil Bardsley.
Skipper Ron Vlaar was also back in the line-up, although he was forced off after 70 minutes with what looked to be a recurrence of his calf injury.
Villa were on the back foot in the opening stages and after Emmanuele Giaccherini had sent a shot skidding just wide from 25 yards, the midfielder's fine pass set up Steven Fletcher for a low angled shot which sneaked only inches past the far post.
Matt Lowton did well to step over the ball as he ran back to cover because any contact would almost certainly have resulted in an own goal.
As the home side maintained their early pressure, Ji fired wide at the far post, but Villa bounced back to grab the lead.
It was a real gift as Lee Cattermole failed to control Valentin Roberge's short pass on the greasy surface and Agbonlahor nipped in to take the ball around keeper Vito Mannone before slotting it into an empty goal.
After Vlaar had deflected a Jack Colback drive for a corner, the visitors looked menacing again when Leandro Bacuna made a strong run through the left channel before firing wide of the far post.
And in the 24th minute Agbonlahor was nearly on target again when Benteke's delightful flick created space for him to unleash a fierce drive which Mannone pushed out with some difficulty.
Although Brad Guzan did well to hold a low shot from Ki, Villa were now creating far more openings, and Bacuna only just failed to connect with Ashley Westwood's cross following a fine build-up involving Agbonlahor and Benteke.
Cattermole was then dispossessed by Agbonlahor, who set up Benteke for a drive which was blocked by Modibo Diakite at the expense of a corner.
But Sunderland were still enjoying most of the possession and Bacuna did well to deflect Jib's close-range effort behind when the Korean midfield looked likely to score.
The second half opened with Bacuna finding space on the right for a powerful 25-yarder which took a deflection off Roberge and was heading for the bottom corner until Mannone scrambled across his line to tip it away.
Sunderland thought they had equalised a couple of minutes later when sub Fabio Borini fired home from seven yards after Fletcher headed down a right-wing centre, but a linesman's flag was raised for a marginal offside decision.
Borini was proving to be a handful for the Villa defence and on the hour mark his low shot was deflected for another corner before Bardsley fired wide following the flag kick.
Ki and Giaccherini both went close with long-range attempts but in the 72nd minute Villa were desperately unlucky not to increase their advantage.
Benteke moved on to Agbonlahor's pass and shrugged off Roberge's challenge before curling an angled shot past Mannone - only for Bardsley to head off the line.
Villa were now looking likely to add a second, and after Fabian Delph had fired wide from the edge of the penalty area, sub Marc Albrighton's tremendous right-footer was pushed behind by Mannone.
Albrighton was less happy, though, when, following a sustained period of Villa possession, he drove over from a good position after being set free by Andi Weimann's precise pass.
An altercation between Agbonlahor and Colback in the last minute of normal time led to a melee on the edge of Villa's penalty area before referee Mike Jones booked both players.
In the fifth minute of stoppage time, Delph shot over from a good position after Albrighton had broken clear down the right.
Sunderland: Mannone; Celustka, Diakite, Roberge (Johnson 76), Bardsley; Cattermole (Borini HT); Ji (Altidore 67), Colback, Ki, Giaccherini; Fletcher. Unused subs: Pickford, Dossena, Larsson, Gardner.
Villa: Guzan; Lowton, Vlaar (Albrighton 70), Baker, Luna; Bacuna, Westwood, Delph; Abonlahor, Benteke, Weimann. Unused subs:Steer, El Ahmadi, Bowery, Tonev, Kozak, Donacien.