Chris Maxwell saved a penalty with the last kick of the match to give the Lilywhites their first point on the road.
North End found themselves two down at the break, strikers Jonathan Kodjia and Tammy Abraham putting the home side ahead, the first with the header, the second a close-range toe poke.
However, the game turned on its head ten minutes into the second half when James Chester was sent off for brining down Lukas Nmecha and substitute Daniel Johnson scored the resulting penalty.
Fellow subsitutes Paul Gallagher and Louis Moult put PNE ahead, the former scoring a free kick with his first touch of the game, and the striker putting North End in front for the first time with a header from a Gallagher corner, but in a crazy five minutes of stoppage time Yannick Bolasie equalised and then a controversial penalty was awarded in the final seconds and Maxwell made a superb stop to his left to deny Glenn Whelan.
Manager Alex Neil made two changes to the side that faced West Bromwich Albion a few days previous, with Nmecha returning from injury to lead the attack and Tom Barkhuizen back in the side as part of a front three, alongside the Manchester City loanee and Callum Robinson. Jordan Storey and the ill Brandon Barker missed out.
The home side had the best of the early chances, with Jack Grealish collecting the ball 40 yards out; before pressing forwards to 20 yards, but he curled his shot over the bar.
However, they went one ahead on 26 minutes when Ahmed Elmohamady delivered a cross from the right-hand side and Kodjia got up at the back post and headed back across goal into the bottom right hand corner.
It was 2-0 eight minutes before the interval when Abraham picked up the ball down the left on the touchline, drove back inside into the box and pushed his effort under Maxwell and into the net, despite last ditch tackles from North End defenders to try and deny the Chelsea loanee.
Johnson was introduced into the midfield at the interval, replacing Ryan Ledson. And the half started with the side on the front foot, Robinson, on his return to Villa Park breaking from the left touchline into the box, forcing Mark Bunn in the home goal to make a fine low save with his legs.
And with nine minutes gone in the half Nmecha was clean through on goal, but was brought down by James Chester, referee Darren England pointing straight to the spot and producing a straight red card to send the Villa captain back to the dressing room.
Johnson took the responsibility for the spot kick and fired it into the top left-hand corner of the goal, sending Bunn the wrong way.
Two minutes later and Nmecha again breezed past the Villa defence, before being upended by Axel Tuanzebe on the right wing. Johnson whipped the ball in and Paul Huntington rose highest, but couldn’t keep his header down, which flew just over the right side of the cross bar.
The same combination from the left saw another header from a free kick by the North End skipper land on the roof of the net, with the Lilywhites pressing for the equaliser as the game entered its final quarter.
Browne was the next to try his luck, firing agonisingly wide of the left hand post from 25 yards after being teed up by Ben Pearson. In the flurry that followed, Nmecha then hit the post with a arrow-like shot from the edge of the ‘D’, with the ball coming out to Johnson again who curled a shot that Bunn was at full stretch to palm away.
The equaliser came with 11 minutes to go, with Gallagher’s first touch of the game. Darnell Fisher was upended by John McGinn on the right corner of the box and North End’s No.12 curled a right-footed ball around the wall and into the bottom right corner, sneaking in past Bunn.
And with three minutes left Gallagher again unlocked the door. His corner from the right was whipped right into the heart of the penalty area and Moult, only just on in a bold move from the manager, replacing Darnell Fisher, powered a header in, with Bunn unable to keep it out.
Five minutes of stoppage time was added and in the first of it the home side drew level with on loan substitute Bolasie poking home from a corner from the right by McGinn.
And in the final 30 seconds a penalty was awarded to Villa. Bjarnason was adjudged to have been fouled by Johnson, very harshly, but Maxwell made up for it with a stunning save to deny substitute Whelan, diving low to his left to save and then smother the ball and the final whistle followed immediately after.
Aston Villa line-up: Bunn, Tuanzebe, Chester (c), McGinn, Grealish, Hourihane (Whelan, 83), Abraham (Bree, 56), Bjarnason, Hutton, Kodjia (Bolasie, 74), Elmohamady. Subs not used: Nyland, Hogan, El Ghazi, Adomah.
PNE line-up: Maxwell, Fisher (Moult, 83), Hughes, Pearson, Huntington (c), Davies, Barkhuizen (Gallagher, 77), Ledson (Johnson, 46), Nmecha, Browne, Robinson. Subs not used: Rudd, Earl, Clarke, Burke.
Attendance: 27,331 (397 PNE fans)
Referee: Mr D England