The Lilywhites led from the 31st minute when Patrick Bauer got the last touch on a low shot from Alan Browne.
It was an advantage they held until the 85th minute, substitute Scott Hogan getting across Bauer who meet a cross from the right-wing and send a stooping header into the net.
North End should have had the game wrapped-up by then, creating some decent chances in the second half.
But with only a single goal lead, they were always vulnerable to a late Blues rally - Hogan having come on as part of a late triple substitution.
Ryan Lowe had made four changes to the starting XI from the side beaten in the FA Cup at Cardiff last Sunday.
The early stages of the contest were quite even, with both sides having attacks as they looked to settle into the game.
Emil Riis cut inside off the left channel and saw his shot in the box hit a Birmingham player flush in the face and bounce clear.
Hughes should have scored in the ninth minute when he connected with a Whiteman corner but angled his header from six yards wide of the far post.
At the other end Lukas Jutkiewicz had a shot blocked at the far post and put behind for a corner.
A couple more chances fell North End's way, Riis seeing a header saved by the keeper after Greg Cunningham had volleyed the ball across the face of the goal.
In the 28th minute, Brad Potts got behind the Blues defence to chase an Evans through ball.
Goalkeeper Neil Etheridge raced out of his box to head clear, the ball going towards the right touchline.
Browne chased it and lifted a first-time shot towards goal from that wide position, one which went wide of the target at the near post.
North End broke the deadlock in the 31st minute.
Whiteman delivered in a corner from the left which Etheridge came out to punch and collided with a team-mate as he did so.
His clearance landed at the feet of Browne just outside the box, the skipper drilling a low right-foot shot goalwards, one which Bauer got a touch on in a crwoded goalmouth to take it into the net.
Six minutes before the interval, Jeremie Bela's corner was met on the volley by Gary Gardner, the effort sailing over the bar.
Birmingham threatened an equaliser early in the second half, a flowing move leading to Jordan James having a shot in the box, Whiteman throwing himself i the way of it to head it over the bar and out for a corner.
The visitors Teden Mengi was booked for a foul on Evans one which brought North End a free-kick 30 yards out in a central position.
Whiteman took the free-kick, his effort hitting the wall and looping into the arms of Etheridge.
A strong run on the counter-attack saw Riis break forward and his pass looked to have played Daniel Johnson clear until a defender slid across to block.
That was the last involvement for Riis, with him substituted along with Potts in the 71st minute - Tom Barkhuizen and Sean Maguire coming off the bench to replace them.
As the game entered the last 10 minutes, Etheridge clawed the ball away from Evans in the six-yard box after Whiteman had curled a cross in from the left.
A PNE counter-attack after they had defended a Birmingham long throw in, saw Evans have a shot saved when a pass to Johnson would have the better option.
The fact they didn't put the game to bed then was to haunt them when the visitors equalised in the 85th minute.
A cross was delivered from the right-wing, substitute Hogan meeting it at the near post to head past Daniel Iversen.
It was Birmingham who came close to taking all three points in stoppage-time, a corner travelling across the six-yard box and cleared by Cunningham off the line at the far post.
PNE: Iversen, van den Berg, Bauer, Hughes, Whiteman, Potts (Barkhuizen 71), Browne, Johnson, Cunningham, Riis (Maguire 71), Evans (SInclair 86). Subs (not used): Ripley, Rafferty, Lindsay, McCann.
Birmingham: Etheridge, Roberts, Mengi,. Roberts, Colin, Gardner, James, Sunjic (Woods 82), Bela (Bellingham 82), Jutkiewicz, Hernandez (Hogan 82). Subs not used): Trueman, Walker, Masampu, Campbell.
Referee: Andy Davies (Hampshire)
Attendance: 12,821 (1,994 away)