Callum Robinson's first-half goal ended Preston's run of three successive defeats and inflicted on leaders Bristol City a first home loss since February.
It was a second successive setback for Steve Cotterill's side, who squandered some key chances to crash to a second straight league defeat.
The visitors took the lead when Chris Humphrey's pinpoint low cross from the right left the unmarked Robinson with a simple tap-in from six yards.
City should have been in front by then. Aaron Wilbraham ran on...