Preston made it back-to-back league wins after coming from behind to beat Swansea 3-1 at Deepdale.
Joel Piroe put the Welsh side ahead with a composed finish after 19 minutes.
But they switched off and were immediately pegged back when Liverpool loanee Sepp van den Berg levelled less than two minutes later.
It signalled a change in momentum as North End stepped up a gear and put City under growing pressure, which paid off when Emil Riis gave Preston a deserved lead in first-half stoppage time.
Ben Whiteman then made the game safe by curling home a fine free-kick after 52 minutes.
The visitors had started the brightest with Piroe heading over Ethan Laird's cross inside the first two minutes.
At the other end, the home fans were soon screaming for a penalty after Riis went down under pressure from Joel Latibeaudiere.
It was a collision which left the referee unmoved but forced Latibeaudiere to be substituted after a lengthy stoppage for treatment.
Liam Cullen warmed the hands of North End keeper Daniel Iversen with a long-range effort after 13 minutes before carving open the home defence with a pass which Piroe coolly converted.
But the lead did not last long as van den Berg drilled home Josh Earl's deep cross at the back post.
Andrew Hughes shot straight at Steven Benda following a good turn on the edge of the box after 30 minutes and the goalkeeper came off his line well to snuff out any threat from Riis after Swansea were caught in possession four minutes later.
The visiting keeper then got down well to beat away a Riis shot and Sean Maguire dragged an effort wide from just inside the box as Preston threatened.
Riis should have scored when he went clean through on the stroke of half-time but could only fire weakly at Benda.
The Dane quickly made up for his mistake, however, when he smashed home Maguire's cross in added time.
Benda was lucky to escape with only a booking when he hacked down Riis outside his box six minutes after the restart but he paid the price when Whiteman curled the resulting free-kick low into the far corner.
Whiteman was off target with another free-kick after 57 minutes before Earl saw a header deflected wide.
Riis blazed high and wide after the ball dropped kindly to him with 20 minutes to play while the toothless Swans showed no sign of getting back into it.
Cullen could only pick out the stand instead of Jake Bidwell before having a shot charged down by Whiteman with six minutes to go as the hosts held on to their lead with ease.