Birmingham failed to keep pace with Championship leaders Wolves as substitute Jon Parkin calmly slotted home an injury-time winner to hand Preston an unlikely victory.
Parkin - who had earlier wasted the home side's best chance only seconds after climbing off the bench - chested down Ross Wallace's sweeping cross before firing past Blues keeper Maik Taylor to give Preston a win that moved them into the play-off places.
Alex McLeish's side had enjoyed the better of an uninspiring game and came close just after the hour mark when Kevin Phillips headed straight at Preston goalkeeper Andy Lonergan from six yards.
The hosts set the early pace and on-loan Sunderland winger Wallace came close to giving Preston what would have been a fortuitous opener when his shot from distance deflected off Quincy Owusu-Abeyie and looped inches over goalkeeper Maik Taylor's crossbar.
Lee Carsley - who netted the only goal in Birmingham's 1-0 win over Plymouth in midweek - hit back for the visitors and forced Preston keeper Lonergan into a smart save with a rasping 20-yard effort moments later.
Birmingham continued to commit men forward in a stuttering opening period, with Radhi Jaidi heading straight at Lonergan following good work down the right from Quincy.
At the other end Callum Davidson went close for Preston with a fierce strike from distance that Taylor parried behind.