It was the Lilywhites' first away win since January 2 and was greeted with joyous scenes in the away end by the 1,700 travelling PNE supporters.
Alex Neil's men had fallen behind 10 minutes before the interval, Maxime Colin's low shot deflecting off Paul Huntington past Chris Maxwell.
But they turned the game on its head with three goals between the 56th minute and 67th minute.
Daniel Johnson equalised with a fine shot from 20 yards, a sweet moment for the ex-Aston Villa man at the home of Villa's fierce second city rivals.
Jordan Hugill then fired North End in front from a fine Josh Harrop pass, with Sean Maguire setting-up the third goal for Tom Barkhuizen.
On the second half performance, it was a thoroughly deserved victory, Birmingham no match for PNE's movement.
It was a great turn around from the first half too when Preston were not at their sharpest going forward.
The North End side had shown two changes to the one which put Cardiff to the sword last Tuesday night, Johnson and Calum Woods coming into the starting XI in place of John Welsh and the injured Darnell Fisher.
DJ returned from a two-game absence through injury, while this was Woods' first competitive start since May 2016.
North End had the game's first chance in the fifth minute,Harrop's cross from the right sliced towards his own goal by Harlee Dean as he attempted to clear, it forcing David Stockdale to push it behind.
Jeremie Boga dragged a shot wide and then rolled an effort straight to Maxwell after cutting into the box from the left-wing.
Birmingham front man Sam Gallagher connected with a free-kick from substitute Liam Walsh, putting a header wide of the far post from close range.
The home side edged in front in the 35th minute, Colin overlapping on the left-wing to reach a pass down the side of the box.
Colin turned Sean Maguire who had tracked back and beat Maxwell with a low drive.
Preston had a good chance to equalise five minutes before half-time, Harrop robbing Walsh of possession in midfield and slipping a pass through to Hugill.
But he rushed the shot on the edge of the box when he had more time to take it on, his effort rolling tamely well wide.
A Harrop corner from the left travelled over to the far post in the 42nd minute, Huntington meeting it but heading the wrong side of the target.
Alex Neil swapped the forward line around at the interval, Maguire moving into the No.10 role behind Hugill, with Barkhuizen moving across to the right and Harrop switching to the left.
What a difference the shake-up seemed to have as three goals in an 11-minute spell turned the game well and truly in PNE's favour.
There were a couple of 'sighters' before the goals, Maguire and Harrop both testing the keeper with shots from just outside the box.
North End's equaliser arrived in the 56th minute, Barkhuizen winning the ball on half-way, just in front of the dug-outs.
He came in field and seemed to over-run the ball but it was picked up by Johnson who motored forward as the home defence backed off before picking his spot with a sweet left-foot finish into the bottom corner from 20 yards.
The celebrations of the former Aston Villa man were a bit too much for the somewhat fussy referee Keith Stroud who showed him a yellow card.
Hugill then gave them the lead on the hour mark, Barkhuizen snapping away at the heels of Colin and eventually forcing him to lose the ball on the edge of his own box.
The ball fell to Harrop who played a first-time pass to find Hugill down the right hand side of the box, Hugill's shot getting a slight touch off a defender on its way past Stockdale.
It was Hugill's first goal since the close of the transfer window where so much speculation followed him around, Birmingham being one of the clubs who made bids for him.
PNE netted their third in the 67th minute, Johnson's slide-rule pass from 30 yards out playing Maguire behind the home defence.
The Irishman squared it first-time into the path of Barkhuizen who had the simple task of knocking it into the net from six yards.
Straight after the third goal, Welsh replaced Harrop and was booked within a minute or so of entering the fray!
As the game moved into stoppage-time, Johnson forced Stockdale into the diving save after a neat exchanges of passes around the edge of the box had seen space open up for him.
Birmingham: Stockdale, Nsue, Morrison, Dean, Colin, Ndoye (Jutiewicz 68), Lowe (Walsh 3), Davis, Maghoma, Gallagher, (Vassell 61) Boga. Subs (not used): Roberts, Gardner, Bramall, Kuszczak.
PNE: Maxwell, Woods (Vermijl 79), Huntington, Davies, Earl, Browne, Johnson (Robinson 90), Maguire, Harrop (Welsh 69), Barkhuizen, Hugill. Subs (not used): Horgan, Spurr, Mavididi, Hudson.
Referee: Keith Stroud (Hampshire)
Attendance: 21,168 (1,700 PNE)