A goal in either half from Famara Diedhiou and Zak Vyner gave Bristol City the points at Ashton Gate.
Diedhiou headed home a corner after only eight minutes and Vyner sealed the points for the hosts with 13 minutes left with a sliced effort from 15 yards out.
Manager Alex Neil handed debuts to Daniel Iversen in goal and also to Ben Whiteman, alongside skipper Alan Browne in the centre of midfield.
However, the hosts started the brighter of the two sides in the opening half. Kasey Palmer, who had just returned from a loan at Swansea City, as well as a period of isolation, fired an effort just over the top right corner of post and bar from 25 yards.
But his side were ahead on eight minutes when the third of a trio of corners in quick succession was curled into an area eight yards out, in a central position, by Tommy Rowe and striker Diedhiou rose highest to head into the bottom left-hand corner of the goal, giving Iversen no chance.
The loanee ’keeper did well just after the half’s midpoint to keep it at 1-0, pushing another effort from Diedhiou over the bar, the forward shooting from the left corner of the penalty area, after checking inside past Darnell Fisher.
But as the half wore on, PNE came into the game and had a good chance to draw level. With nine minutes to go in the opening period, after some patient build-up play, eventually Sean Maguire found Tom Barkhuizen out on the right.
The winger who fizzed the ball in that found Scott Sinclair 12 yards out, but his shot was straight down the throat of Daniel Bentley in the Robins’ goal with his left foot, after a clever flick into his path by Browne.
The Lilywhites were on top at the start of the second half, playing in the City half, with a lot of intent high up the pitch and Browne’s superb ball from the left touchline in behind the home side backline almost found the run of Barkhuizen, inches away from creating a good opportunity to level up.
Daniel Johnson then forced a block by home captain Tomas Kalas, before Maguire saw an effort put behind by Alfie Mawson. From the resulting corner Whiteman found Paul Huntington 15 yards out, his header beating Bentley and the man on the line, but it came off the cross bar and behind.
The pressure continued to come from the Blues; Maguire and Fisher both seeing shots blocked before Johnson and Barkhuizen were replaced by a third debutant Ched Evans and Brad Potts at the half’s mid-point.
A rare foray forward saw the hosts test Iversen when Han Noah Massengo, on for Palmer, shooting from 20 yards, but the Leicester City man made a fine stop to keep it out on 76 minutes, but from the recycled corner the home side made it 2-0.
Rowe’s left-wing cross was initially cleared by Andrew Hughes, but put back into the penalty area by Jack Hunt, Hughes again heading it away, but on the volley Vyner sliced the ball with his left foot into the bottom left corner of Iversen’s goal on 77 minutes.
North End continued to press, Browne firing a right-footed effort just wide from Hughes’ cross from the left-hand side in the closing minutes, before Jayson Molumby, on for Maguire, drilled a low ball across that almost found SInclair, however, a goal did not come and the home side took the three points.
Bristol City line-up: Bentley, Hunt, Nagy, Mawson, Martin, Diedhiou (Wells, 79), Kalas (c), Rowe, Vyner, Adelakun (Bakinson, 86), Palmer (Massengo, 70). Subs not used: O’Leary, Mariappa, Moore, Morton, Bell, Edwards.
PNE line-up: Iversen, Fisher (Ledson, 86), Hughes, Whiteman (Riis, 78), Huntington, Davies, Barkhuizen (Potts, 67), Browne (c), Maguire (Molumby, 78), Johnson (Evans, 67), Sinclair. Subs not used: Ripley, Earl, Gallagher, Rafferty, Ledson.
Referee: Mr D Whitestone