Luton suffered yet more late heartache as a former loan striker Jayden Stockley came off the bench to send them to their second straight defeat and 14th of the season.
The winner came moments after Harry Cornick squandered a one-on-one with keeper Declan Rudd.
Before that, in the first half, it was a tale of two penalties as Preston opened the scoring in the fifth minute after Matty Pearson was adjudged to have fouled.
It took Paul Gallagher two bites at it after James Shea saved the set-piece but saw the Lilywhites man blast in the rebound. It was the tenth time Town have conceded first.
Town had also had a penalty claim waved away, while Pearson cleared off the line from Aaron Hughes, but then James Collins levelled from the spot just before the interval, firing down the middle after Callum McManaman was tripped in the area.
But with six minutes remaining Stockley – who had played 13 times for Town as a loan forward in 2015 – forced the ball in from close range after a goalmouth scramble.
Luckily for Luton, relegation rivals Stoke and Wigan both drew to ensure the Hatters still remain one place above the drop zone, but their buffer, which had been four points seven days ago has now been cut in half.