Taylor had enlivened a tame first half with a superb reflex save after 21 minutes to deny Amdy Faye, but the match was drifting to a goalless first half until the major incident which transformed the match.
Taylor and his namesake Martin got in a tangle just outside the area as they attempted to deal with a long, hopeful ball forward from Linvoy Primus.
Yakubu Ayegbeni ran on to steer the ball into the empty net, but Kent referee Barry Knight caused all kinds of problems by disallowing the goal.
After consulting his linesman and as 16 players jostled around him, Knight showed Maik Taylor a red card and gave Pompey a free-kick 20 yards out.
But Birmingham, who had brought on Ian Bennett, did not escape.
Dejan Stefanovic stepped forward to beat Bennett, who had not touched the ball, with a low left-foot free-kick.
Portsmouth made the most of their interval lead and there might have been more.
Lomana Tresor LuaLua shot at Bennett after 48 minutes before Portsmouth went further in front.
LuaLua escaped Kenny Cunningham's lunge on the halfway line and headed for goal and after an intended pass had rebounded to him, he made no mistake by lashing in a shot from ten yards.
Birmingham had made little attacking contribution, but were given a lifeline they could hardly have expected after 67 minutes.
Damien Johnson took on two defenders down the right and his low centre was turned in smartly at the near post by Stern John.
Portsmouth were still reeling seconds later when a 30-yard free-kick from Jamie Clapham deceived the Pompey defence and Shaka Hislop was forced to go down at the far post to make a smart save and deny Birmingham an equaliser.
That was as good as it got for Birmingham and five minutes later Portsmouth underlined their superiority with a third goal.
Yakubu reached the by-line and his centre was handled by Cunningham as he attempted the tackle.
Yakubu stepped up to roll in the penalty for his 12th of the season and his fourth goal in the last four matches.
Portsmouth: Hislop, Primus (Pasanen 50), Stefanovic, De Zeeuw, Taylor, Faye (Harper 82), Smertin, Berkovic (Quashie 74), Stone, LuaLua, Yakubu. Subs not used: Wapenaar, Sheringham.
Birmingham: Maik Taylor, Tebily (Bennett 45), Martin Taylor, Cunningham, Upson, Johnson, Hughes, Savage (Clemence 58), Clapham, Forssell (Morrison 78), John. Subs uot used: Motteram, Cisse.
Sent off: Maik Taylor (45).
Booked: Cunningham, Clemence.
Referee: B Knight (Kent)