Former Blues defender Mario Melchiot appeared to make no contact with winger Keith Fahey in first-half injury-time before McFadden converted the spot-kick.
It means the Latics have now gone seven league games without a win but City can look forward with confidence to another top-flight campaign after being written off as relegation certainties in August.
Wigan may feel hard done by with the penalty decision but they can have no complaints about the outcome as Alex McLeish's side had enough chances to secure the three points.
Veteran Lee Bowyer turned in another excellent performance in the centre of midfield for City, who remain unbeaten at home since September.
McLeish named an unchanged side while Wigan counterpart Roberto Martinez brought back fit-again defender Titus Bramble and replaced Marcelo Moreno.
Paul Scharner brought Sebastian Larsson down midway in the Wigan half and, from his resulting free-kick, the woodwork denied the home side the opening goal after 14 minutes.
Centre-back Scott Dann was first to react to the probing centre and his powerful header crashed against the crossbar and rebounded to safety with Chris Kirkland well beaten.
Dann had another opportunity to break the deadlock when an inswinging corner from Larsson was met by the former Coventry player, but he glanced his header wide.
Wigan were now under the cosh and Kirkland was forced to parry away a fierce shot on the turn from Cameron Jerome at the expense of a corner.
Bowyer was making his mark and a challenge on him by Charles N'Zogbia earned the Wigan player a booking.
Liam Ridgewell got forward for Blues to good effect down the left flank and he created two chances in quick succession from his crosses.
First Jerome was crowded out after taking too long to shoot and was robbed by Mohamed Diame, and then Kirkland denied McFadden at point-blank range.
But in first-half injury-time Blues went ahead through McFadden's penalty.
Replays appeared to show there was no contact by Melchiot on Fahey but referee Anthony Taylor pointed to the spot before McFadden sent Kirkland the wrong way.
Martinez made a double substitution for the second half with Jason Scotland and Victor Moses replacing Scharner and N'Zogbia respectively.
Dann was disappointed not to have at least tested Kirkland w he flashed a header wide from yet another testing Larsson free-kick.
Rodallega was booked after 55 minutes for kicking out at Johnson inside the Birmingham box.
Bowyer failed to make proper contact 10 yards out after a half clearance from Bramble and it flashed harmlessly across the face of goal.
McFadden wriggled his way into a shooting position and brought a low save out of Kirkland before he was replaced by Kevin Phillips after 64 minutes.
In a rare moment of danger for the home side, Joe Hart did well to block Rodallega's close-range effort after McCarthy had teed him up.
Wigan defender Gary Caldwell was booked for holding back Jerome during a Birmingham counter-attack.
Referee's assistant Trevor Massey had to be carried off on a stretcher after he was struck in the face by the corner flag following a challenge by Ridgewell on McCarthy. He was replaced by fourth official Steve Bennett.
Blues skipper Stephen Carr appeared to have picked up a hamstring injury and was replaced by Craig Gardner.
Gomez had a late chance to claim a point for Wigan but sliced his shot just wide from a Moses cross and in the dying seconds Phillips was thwarted by Kirkland.