Goals from Emi Buendía and Ollie Watkins and two top-class first-half saves from Emiliano Martínez proved to be the difference at St. James' Park, with the absence of United's talismanic captain Bruno Guimarães keenly felt by Eddie Howe's team and an injury to Joelinton adding to a disappointing afternoon.
Sandro Tonali almost opened the scoring inside the first minute as he jinked past three defenders and into the box but Martínez spread himself to block the Italian's shot and deny him what would have been a wonderful solo strike. Nobody quite knew it then, but that proved to be a massive moment.
Nick Pope was also in action in the early stages of the match, diving full length to his left to keep out a long-range Buendía effort, then in the 12th minute he made an even better stop, diverting a Watkins drive behind for a corner after the England striker had beaten a stretching Malick Thiaw to Jadon Sancho's through-ball.
But Pope could do nothing to keep out a brilliant shot from 25 yards from Buendía midway through the first half.
In the 33rd minute, Buendía popped up once more with a low shot from the edge of the box but this time it was straight at Pope.
Lewis Miley returned to the starting XI in the absence of Guimarães, who came off with an ankle injury against PSV midweek, and the teenager was again impressive for the Magpies. In the 42nd minute, he looked to have levelled matters but Martínez got a vital touch to his looping header from a Harvey Barnes delivery. The agile Argentine then made a more routine save from a Yoane Wissa header in the last of four minutes of first-half stoppage time.
Joelinton made his 250th appearance for the Magpies but limped off with a groin problem early in the second half to be replaced by former Villa man Jacob Ramsey.
Barnes saw a dipping strike deflected just over then both he and Anthony Gordon agonisingly failed to connect with a teasing Kieran Trippier cross after Miley had played the stand-in skipper in on the right flank.
At the other end, Pope had to get down sharply to beat away a Morgan Rogers shot as the hour mark approached, then Thiaw made a last-ditch tackle to prevent substitute Leon Bailey from getting a shot away.
Newcastle dominated the second period but struggled to create clear openings while Villa remained a frequent threat on the break. A dipping Rogers free kick was held by Pope, who then made a flying save to keep out a Watkins effort which looked bound for the top corner.
But in the 88th minute, Watkins headed home from Lucas Digne's centre to seal the points - and a first win at St. James' since 2005 - for Villa, who are level on points with second-placed Manchester City and still within touching distance of leaders Arsenal. The Champions League places remain similarly within reach for Newcastle, but this was undeniably a setback.
Newcastle United: Nick Pope, Kieran Trippier (c), Lewis Hall, Sven Botman, Joelinton (Jacob Ramsey 48), Sandro Tonali (Joe Willock 84), Yoane Wissa (Nick Woltemade 63), Anthony Gordon (Anthony Elanga 63), Harvey Barnes, Malick Thiaw, Lewis Miley
Subs not used: Aaron Ramsdale, William Osula, Dan Burn, Alex Murphy, Leo Shahar




