Preston skipper Tom Clarke scored a dramatic late winner to condemn promotion hopefuls Cardiff to a third straight defeat in the Sky Bet Championship on Friday evening.
In a cagey first half, both sides largely failed to test either goalkeeper and the second period continued in the same scrappy vein, with a lack of energy ensuring that a stalemate looked the most likely outcome in south Wales.
But with stoppage time looming, Cardiff goalkeeper Neil Etheridge could only parry Paul Huntington's effort from a Josh Harrop corner, allowing Clarke to nod home an unlikely winner from close range (90).
The result sees Neil Warnock's men lose further ground on Wolves, while handing Bristol City a chance to pull clear in second on Saturday evening; Alex Neil's side are now within a point of reaching the play-off places.
With the Bluebirds reeling from two defeats that had seen them relinquish their lofty position in the Championship, it was a tight encounter, with the hosts seemingly prepared to allow Preston to play, before pouncing on the counter-attack.
Cardiff: Etheridge (5), Paterson (6), Manga (7), Bamba (7), Peltier (6), Tomlin (6), Damour (6), Ralls (5), Mendez-Laing (6), Zohore (6), Feeney (5)
Subs: Hoilett (6), Healey (6), Bogle (N/A)
Preston: Maxwell (6), Clarke (8), Huntington (6), Davies (7), Cunningham (6), Gallagher (6), Pearson (7), Barkhuizen (7), Browne (6), Horgan (5), Hugill (6)
Subs: Harrop (6), Robinson (6), Woods (N/A)
Man of the Match: Tom Clarke
The tone of the game was set relatively early on; long passes - sent to test the mettle of Sol Bamba in the Bluebirds' defence - came in abundance, bright attacks did not.
Preston's passing ability began to show as the half wore on, with Pearson dictating the pace of the game; they looked threatening on several occasions and had chances from a pair of dangerous free-kicks. Etheridge remained untested.
It was Cardiff who found themselves on top as the second period got underway and they almost found a way through the Preston backline minutes before the hour mark, but Kenneth Zohore was expertly dispossessed by Ben Davies, before visiting stopper Chris Maxwell almost gifted Junior Hoilett the opener when he smashed a clearance off his back.
There were plenty of changes from both sides as the festive fixtures continued, and both managers brought in three new faces to their starting XI.
Neil Warnock swapped Craig Bryson, Junior Hoilett and Joe Bennett for Callum Paterson, Lee Tomlin, Liam Feeney, while Alex Neil replaced Calum Woods, Kevin O’Connor, Daniel Johnson with Tom Clarke, Greg Cunningham and Alan Browne.
Warnock's men were inches away from being undone themselves when Tom Barkhuizen's cross was saved by Etheridge and stunningly cleared from the feet of Jordan Hugill by Bruno Manga with 13 minutes to play.
But with the tempo rising as the final minutes of the game approached, Preston made their late onslaught count. Harrop's corner was headed goalwards by Huntington and pushed clear by the home defence, before Clarke arrived to nod the winner at the death.
Man of the match - Tom Clarke
A top performance from the skipper, keeping a Cardiff attack who - on their day - are extremely threatening. Clarke and his backline kept Warnock's men at bay for large swathes and he capped the performance with a deserved goal.
Neil Warnock: "It's a sloppy goal for us to concede and I thought the goalkeeper should have done better. But it's a cruel game sometimes. When you see the number of lads missing you realise what we're without.
"It's down to me now. I've got to smarten it up, change things and make sure we don't feel sorry for ourselves. We won't get down and we'll get on with it, but I've got to do something in the next few days to give the players a lift because it is difficult losing three on the trot.
"I have recommended to the board we sign two or three players and I hope they are supportive. We can't sign five players in January, so we have to get guys fit and get on with it."
Alex Neil: "We have shown this year, we can beat good footballing teams and we have also shown we can mix it with the physical teams. We knew what was coming. It was just a case of whether or not we could stand up to it. That's twice we have now beaten Cardiff.
"This was not a game for the football purists. It was a rough, scrappy match. But I thought if there was any football being played, it was by us. The substitutions made an impact and football is a squad game."
Both sides get their year underway on New Year's Day when the Bluebirds travel to Loftus Road to take on QPR, while Preston welcome Middlesbrough to Deepdale. Both fixtures kick off at 3pm.