Sean Maguire was again the match winner, coming off the bench to give the Lilywhites three points against fellow Play-Off chasers Bristol City at Deepdale.
The frontman latched onto fellow substitute Daniel Johnson’s through ball to run 45 yards, before slotting past Frank Fielding for what proved to be the three points-earning effort.
Just two minutes before the Irishman’s strike, Famara Diedhiou had headed the visitors level after Alan Browne had given Alex Neil’s side the lead with a stunning lob 20 minutes into the game.
The North End boss had made just one change to the side that overcame Bolton Wanderers on Gentry Day three days earlier, Darnell Fisher coming into the side at right back after the completion of his suspension.
And the defender was key in the opening goal of the game. He press high up the pitch, in the Robins’ final third, forcing a scuffed clearance from Hordur Magnusson that fell to Browne 25 yards out - and with Fielding stranded having come out of his goal, the No.8 looked up and lifted a floated lob over the former Blackburn ’keeper and into the empty net.
It was no more than the home side had deserved, after a high-octane first 20 minutes where they asked questions of their high-flying opponents.
However, after half-time City came out looking sharper and Declan Rudd made the first of a couple of vital saves, as a Marlon Pack corner was headed goalwards by Magnusson, the ball bouncing down and up towards goal, only for the North End No.1 to tip the ball up and over the bar.
At the other end Fielding made an even better save on 54 minutes. The Lilywhites had been awarded a free kick on the left after a foul by Bobby Reid on Greg Cunningham and Paul Gallagher delivered deep into the penalty area, Paul Huntington rising highest to flick a header towards the top right corner, but the home side’s stopper back-pedalled and tipped the ball just around the post.
The equalising goal came on 66 minutes as Bobby Reid found a little bit of space on the Bristol City left to fire a quick cross in right-footed and Diedhiou flicked a header into the right hand corner of the goal, much to the delight of the 350 fans who had made their way from the south west.
But they were level for less than two and a half minutes. Johnson and Maguire had both just been introduced before the equalising goal and it was the two that would combine for what turned out to be the winner.
North End had smothered a City attack and the No.11 collected the ball midway inside his own half, hooking a pass right down the middle of the visiting defence.
Maguire collected the ball and raced back, with two Red defenders alongside him, he turned Korey Smith inside out, before checking onto his left foot and driving the ball from 18 yards into the bottom right hand corner of the goal, before unleashing his favoured knee slide in front of the Alan Kelly Town End and the Invincibles Pavilion.
The game was far from over, though, and Rudd was called into action again with a dozen minutes left, when former PNE man Josh Brownhill hooked a cross from the right to the back post and the division’s top scorer Bobby Reid came racing in to fire on target, only for the PNE No.1 to make a superb smothering save.
North End almost put the game to bed with six minutes left when more excellent high-pressing from Johnson saw him collect and feed Johnson on the left. The former Bristol City man crossed perfectly for an onrushing Tom Barkhuizen down the right, but he was unable to keep down his vicious volley, that flashed over the bar into the home support.
In what proved to be almost eight minutes of four signalled to be added on, Aden Flint saw a straight red card for an elbow on Greg Cunningham and the Lilywhites defence handled some tense late corners, but it was well-deserved back-to-back wins for Alex Neil’s team as they narrowed the gap on the top six to just one point.
PNE line-up: Rudd, Fisher, Cunningham (c), Pearson, Huntington, Davies, Bodin (Maguire, 64), Gallagher (Johnson, 60), Robinson (Woods, 90), Browne, Barkhuizen. Subs not used: Maxwell, Harrop, Woods, Spurr, Moult.
Bristol City line-up: Fielding, Bryan, Flint, Wright (c), Smith, Brownhill, Diedhiou, Redi, Paterson, Pack, Magnusson (Kent, 64). Subs not used: Steele, Walsh, Eliasson, O’Neil, Diony.
Attendance: 11,264 (405 Bristol City fans)
Referee: Mr G Eltringham