Match ends, Burnley 0, Preston North End 2.
Preston ended Burnley's nine-game unbeaten run to seal a first Lancashire derby win at Turf Moor since 2007.
In a first half of few chances, Clarets striker Sam Vokes registered the only shot on target, but Jordan Pickford tipped on to the bar from close range.
Will Keane, playing against twin brother Michael, eventually broke the deadlock with a strong run before firing low past Tom Heaton.
Daniel Johnson then swept home Joe Garner's pull-back to secure victory.
The hosts enjoyed the better of the opening 15 minutes, but failed to create any clear openings with most opportunities limited to corners.
Preston then started to get a foothold in the match, with both Garner and Tom Clarke seeing efforts deflected away from goal, before Joey Barton shot wide for Burnley after good work down the right from Andre Gray.
With 35 minutes gone, Sean Dyche's side finally registered the game's first shot on target as Vokes, playing his first game for a month after a groin injury, lashed the ball at goal from six yards, but Pickford's impressive, point-blank save diverted the ball on to the bar.
Preston's first effort on target came four minutes into the second half, but Alan Browne could only drive his attempt straight at Heaton after a clever ball from Will Keane.
And it was Manchester United loanee Keane who gave the visitors the lead, firing beyond Heaton after finding space against Michael Duff.
Barton, Gray and Vokes all had efforts for Burnley, but it was the Lilywhites who rubber-stamped victory five minutes from time, when Garner's strong run fed Johnson who found the net.
Preston's first win at Turf Moor since December 2007 meant Simon Grayson's men are now five games unbeaten away from home, while Burnley remained fifth despite a third league defeat of the campaign.
Burnley manager Sean Dyche:
"You can only deserve a game if the final outcome is that you win, but we have certainly done enough to win.
"Their goalkeeper is man of the match, which is always a sign that you have been productive, but we have got to punish teams.
"I must make it clear that we had more than enough chances to take care of business ourselves.
"I am disappointed by the outcome, not the performance. If we keep creating that many chances on a weekly basis we will win lots of football matches."
Preston North End manager Simon Grayson:
"The Championship is relentless. You can't think you have achieved anything by a couple of victories here and there but it gives us a platform.
"It is a big win for us, and winning a local derby match obviously adds extra significance to it. We had to defend and our goalkeeper had to make a really good save, but that defines matches.
"We felt over the last few weeks that performances have been very good and results were just around the corner in terms of turning draws into wins, so we are delighted."
- 27DarikwaSubstituted forLowtonat 78'minutesBooked at 90mins
- 21BoydSubstituted forTaylorat 71'minutes
- 13BartonBooked at 72mins
- 37ArfieldSubstituted forKightlyat 77'minutes
- 2VermijlBooked at 43mins
- 3CunninghamBooked at 31mins
- 11JohnsonSubstituted forWelshat 90+5'minutes
- 9KeaneBooked at 42minsSubstituted forHugillat 79'minutes
- Kevin Friend
- Shots on Target
Second Half ends, Burnley 0, Preston North End 2.
Matthew Lowton (Burnley) is shown the yellow card for a bad foul.
Foul by Matthew Lowton (Burnley).
Joe Garner (Preston North End) wins a free kick in the attacking half.
Substitution, Preston North End. John Welsh replaces Daniel Johnson.
Foul by Michael Kightly (Burnley).
Tom Clarke (Preston North End) wins a free kick in the defensive half.
Joey Barton (Burnley) wins a free kick in the attacking half.
Foul by Daniel Johnson (Preston North End).
Michael Kightly (Burnley) wins a free kick on the left wing.
Foul by Marnick Vermijl (Preston North End).
Goal! Burnley 0, Preston North End 2. Daniel Johnson (Preston North End) left footed shot from the centre of the box to the centre of the goal. Assisted by Joe Garner.
Attempt missed. Joey Barton (Burnley) right footed shot from outside the box misses to the right following a corner.
Corner, Burnley. Conceded by Marnick Vermijl.
Attempt missed. Daniel Johnson (Preston North End) left footed shot from outside the box misses to the left. Assisted by Tom Clarke.
Substitution, Preston North End. Jordan Hugill replaces Will Keane.
Substitution, Burnley. Matthew Lowton replaces Tendayi Darikwa.
Substitution, Burnley. Michael Kightly replaces Scott Arfield.
Foul by Joey Barton (Burnley).