Match ends, Preston North End 1, Birmingham City 0.
Sean Maguire struck a stoppage-time winner as Preston North End extended their unbeaten run to 12 matches against an unlucky Birmingham City.
The Lilywhites had failed to land a shot on target until Maguire struck deep into stoppage time, heading in Daniel Johnson's corner at the back post.
It was harsh on Blues, who carried most of the goal threat, with Che Adams forcing Declan Rudd into a great save when one-on-one.
Rudd also saved from Jacques Maghoma, and palmed away Connor Mahoney's shot before Maguire's late strike condemned Garry Monk's side to their fourth straight defeat.
As well as recent form being with Alex Neil's side, City had to contend with history, having won just one of their previous 12 visits to Deepdale, and that coming in February 2001.
But despite Preston's status as the Championship's form horses, with seven wins in their previous 10 before kick-off, only one of those had come on home turf, with the Lilywhites held to five draws in their previous six.
The home fans might have feared more Deepdale frustration as Blues made most of the running, with the busy Mahoney whipping in a cross inches from the head of Lukas Jutkeiwicz before Maikel Kieftenbeld volleyed into the side netting.
Yet for all of their impetus, Garry Monk's side failed to score for the fourth match running to fall further off the pace in the play-off chase, lying 13th and seven points adrift of the top six.
In contrast, Preston moved up to seventh, level on points with Aston Villa who now occupy the final play-off spot on goal difference.
Preston manager Alex Neil:
"It was difficult conditions for both teams today to play in this weather, but we found a way to get the three points.
"I always believe in this group of players that they can get that goal to win the game, and even when the chance was saved late on, I still believed they could get a goal and we did.
"We only go under the radar because nobody cares about Preston apart from those involved with Preston, but we don't care. We care about the club and the fans know how it is and that's all that matters to us."
Birmingham City manager Garry Monk told BBC WM 95.6:
"We can't quite believe it. We thought we were the best team on the pitch; I can't remember them having anything meaningful against us.
"We controlled them, we controlled the whole game until the final seconds and we get punished with the classic sucker-punch.
"We didn't defend that one situation and that's a really harsh one to take. The performance warranted three points and everyone in the stadium realises that, but we haven't got them and it's very difficult for the players to take."
- 2FisherBooked at 45mins
- 6DaviesBooked at 86mins
- 16HughesSubstituted forEarlat 70'minutes
- 4PearsonBooked at 10mins
- 44PottsSubstituted forRobinsonat 60'minutes
- 20StockleySubstituted forBarkerat 74'minutes
- 7MahoneySubstituted forJotaat 79'minutes
- 20GardnerBooked at 90mins
- 6KieftenbeldBooked at 64mins
- 19MaghomaBooked at 84mins
- Scott Duncan
- Shots on Target
Second Half ends, Preston North End 1, Birmingham City 0.
Gary Gardner (Birmingham City) is shown the yellow card for a bad foul.
Sean Maguire (Preston North End) wins a free kick on the left wing.
Foul by Gary Gardner (Birmingham City).
Goal! Preston North End 1, Birmingham City 0. Sean Maguire (Preston North End) header from the centre of the box to the bottom left corner. Assisted by Daniel Johnson with a cross following a corner.
Corner, Preston North End. Conceded by Maikel Kieftenbeld.
Attempt blocked. Daniel Johnson (Preston North End) left footed shot from the centre of the box is blocked. Assisted by Ben Pearson with a through ball.
Foul by Ben Davies (Preston North End).
Maikel Kieftenbeld (Birmingham City) wins a free kick in the attacking half.
Offside, Preston North End. Daniel Johnson tries a through ball, but Brandon Barker is caught offside.
Attempt blocked. Jacques Maghoma (Birmingham City) left footed shot from outside the box is blocked.
Ben Davies (Preston North End) is shown the yellow card.
Foul by Ben Davies (Preston North End).
Che Adams (Birmingham City) wins a free kick in the attacking half.
Darnell Fisher (Preston North End) wins a free kick in the defensive half.
Foul by Che Adams (Birmingham City).
Jacques Maghoma (Birmingham City) is shown the yellow card for a bad foul.
Sean Maguire (Preston North End) wins a free kick on the right wing.
Foul by Jacques Maghoma (Birmingham City).