City were undone by a familiar face as unlikely goalscorer Greg Cunningham headed the winner on his first return to Ashton Gate.
A subdued first period gave way to a gripping second, as Nathan Baker put through his own net nine minutes after the break only for Aaron Wilbraham’s sixth goal of the season to restore almost instant parity.
But Preston keeper Sam Johnstone saved brilliantly from Wilbraham and Bobby Reid, while Daniel Johnson struck the post when he should have put the visitors back in front.
But Cunningham, who only scored five goals in three years as a City player, stooped to conquer with the knockout blow ten minutes from time.
Steve Cotterill handed a debut to on-loan goalkeeper Richard O’Donnell, signed at the eleventh hour from Wigan Athletic until the end of the season.
Preston were fielding a loan keeper of their own in the form of Manchester United’s Johnstone – he of the man of the match display at Deepdale last April in a 1-1 draw that kept City on track to secure the Sky Bet League One title.
Johnstone was the first to blink, slicing at an early clearance before only making faint contact with Marlon Pack’s corner in attempting to punch the ball clear.
There were still no shooting opportunities to report by the midpoint in a first half that resembled more of a chess match than the usual cut-and-thrust you associate with this City side.
But Paul Gallagher would attempt to break the deadlock with the first notable effort on goal after 27 minutes, exchanging passes with Johnson before trying his luck with a curling shot that veered away from O’Donnell's dive and just past the post.
By that time Cunningham had already been welcomed back to BS3 in the form of a very late lunging tackle from former team-mate Luke Ayling, eventually booked for the challenge after Preston had been allowed to play on.
Cunningham would soon be enjoying himself a bit more as he headed Johnson’s diagonal ball down towards Eoin Doyle, but O’Donnell was quick to intervene – even if the offside flag would have prevented the visitors taking the lead in any case.
Gallagher – the only man to pull the trigger in the first half – did so again from long range before the interval, but again O’Donnell was alert to gather.
It had not been the best 45 minutes of the season from either side, but there was a greater intensity about City from the restart.
Wing-backs Mark Little and Joe Bryan both produced teasing crosses seeking the aerial prowess of Wilbraham, with the second of those dropping to Jonathan Kodjia, who could not get the required purchase on his volley as he waited for the ball to drop.
But just as City were really looking to take the initiative in the game, they fell behind.
Gallagher was the architect, venturing on the overlap before crossing left-footed from the byeline towards Joe Garner, but Baker got there first to inadvertently send a header sailing beyond O’Donnell’s outstretched right hand.
But it was a goal that brought out the best in Cotterill’s men, who responded quickly and with purpose, drawing level within 90 seconds.
Aden Flint was acting as a temporary centre-forward and was a necessary nuisance to force the ball into the path of Wilbraham, who did the right thing – drove the ball hard and low through a crowd of bodies to beat Johnstone via a slight deflection.
Wilbraham had beaten Johnstone, just as he did nine months before, but the duel was not over.
Little embarked on a lung-busting run down the right flank that took him into the box, eventually laying the ball off for Wilbraham, whose firm side-footed shot looked destined for the bottom corner only for Johnstone to turn it aside with a strong right hand.
The momentum was with the hosts but City were almost left cursing themselves soon after, with the game as a spectacle by now unrecognisable from the first half.
Little was caught napping in possession as the furthest man back, allowing Johnson to nip it off his toes and bear down on goal.
It was down to the debutant to save his new employers, but Johnson looked composed, disguising his shot as he opened up his body only to slide the ball towards the near corner.
But his luck was out, as his shot struck the base of the post and stayed out, allowing City – and Little in particular – to breathe a huge sigh of relief.
It was a feeling replicated at the other end by the Preston players with 20 minutes left, as substitute Reid – on for the injured Luke Freeman – sent a stunning curling effort towards the top corner that looked impossible to keep out, only for Johnstone to do exactly that with a fingertip save.
Cotterill then threw on Burns and Agard – just as he did with great success at West Brom – but before long found his side behind again.
Gallagher’s corner to the back post was perfectly flighted for the onrushing Cunningham, who threw himself at the ball and found the net with a brave diving header via the upright.
City piled men forward in search of a late equaliser and nobody came closer than Kodjia, who nodded against the post deep into six minutes of added time before forcing one more save out of the inspired Johnstone.