It was an unhappy return to St Andrew's for former Blues favourite Melchiot. His every touch was booed by the home fans and he was guilty of giving away the decisive spot-kick, although replays showed he may have been unlucky to concede it.
Wigan's previous trip to Birmingham brought a 2-0 win at Aston Villa on the opening day of the season and heralded a new dawn under Robert Martinez.
On current evidence, it looks like a false dawn, with the Spaniard's side scoring just three goals and taking three points from their last seven games as they hover precariously close to the drop zone.
McLeish praises Birmingham's hard work
The Latics made a misleadingly promising start with Rodallega trying his luck from 25 yards and Charles N'Zogbia seeing an effort deflected just wide.
But the home side soon began to get a grip on proceedings with the precise right foot of Sebastian Larsson looking their most potent weapon.
First, the Swede whipped in a dangerous free-kick and Ridgewell got between two Wigan defenders to send a thunderous header against the bar. Moments later, Scott Dann nodded Larsson's corner just wide.
At the other end, Blues keeper Hart was having a quiet afternoon but the England hopeful put his side in trouble when he flapped at N'Zogbia's corner and prompted a hectic goalmouth scramble before his defenders eventually managed to clear.
Wigan stopper Chris Kirkland gave a better account of his international credentials when he prevented a potential addition to Titus Bramble's colourful back catalogue of own goals.
When Ridgewell sent a low cross into the six-yard box, Bramble slid in ahead of McFadden and diverted the ball goalwards but Kirkland got down to pull off an excellent reflex save.
The Blues' pressure finally told in first-half injury time but it was a goal that could easily have been avoided.
Fahey looked to be going nowhere in the left-hand corner of the penalty box until Melchiot stuck out a leg and sent the Irishman tumbling.
There was minimal contact but referee Anthony Taylor pointed to the penalty spot and McFadden made no mistake as he sent Kirkland the wrong way.
Martinez responded by sending on attacking duo Victor Moses and Jason Scotland at half-time - but his defenders went missing when Dann headed another Larsson set-piece just wide.
Martinez frustrated by 'harsh' penalty
Wigan continued to labour until a moment of inspiration from James McCarthy almost unlocked Birmingham's water-tight defence.
The young Irishman slid a delightful pass through two defenders to set up Rodallega but Hart did superbly to charge down the Colombian's shot from eight yards.
Wigan failed to build on the chance and the game became scrappy, with the biggest drama reserved for referee's assistant Trevor Massey.
The visibly shaken official was replaced after he was hit on the head by a corner flag, which flew into the air after a crunching tackle by Ridgewell on McCarthy.
Just before the board went up to signal a mammoth seven minutes of injury time, the Latics fashioned a gilt-edged chance to equalise.
Moses jinked into the penalty box and teed up Rodallega, who prodded a shot agonisingly wide from 10 yards out.
Substitute Kevin Phillips could have put a final gloss on the win at the death but he dallied too long on the ball after being sent clean through.
Not that Blues manager Alex McLeish will mind, as his side held on to extend their unbeaten home record to 10 games and reach the magic 40-point mark far earlier in the season than he could have expected.
Birmingham manager Alex McLeish "The penalty was a bit fortunate because Fahey was running away from goal, but it was a careless tackle.
"Melchiot put his foot in and when you don't get the ball you are always risking it as a defender.
"Keith Fahey is not a guy who goes down easily, so he's been hit. He must have been hit."
Wigan manager Roberto Martinez "I don't think there was any contact and, if there was, it was not enough for it to be a penalty.
"The referee was only five yards away but at the moment we are not getting the luck with decisions.
"Our player is trying to clear the ball and I would say their player should have been given a yellow card."
90:00+7:40 Kevin Phillips takes a shot. Save by Chris Kirkland.
90:00+6:01 Substitution (Birmingham) makes a substitution, with Michel coming on for Cameron Jerome.
90:00+6:01 Barry Ferguson fouled by Titus Bramble, the ref awards a free kick. Joe Hart takes the free kick.
90:00+5:18 Corner taken by Jordi Gomez played to the near post, Sebastian Larsson makes a clearance.
90:00+4:51 Jordi Gomez takes a inswinging corner from the right by-line to the near post, Sebastian Larsson makes a clearance.
90:00+1:16 Free kick awarded for a foul by Sebastian Larsson on Victor Moses. Free kick crossed right-footed by Victor Moses from left
wing, Roger Johnson fouled by Hugo Rodallega, the ref awards a free kick. Joe Hart takes the free kick.
90:00+0:40 Gary Caldwell fouled by Kevin Phillips, the ref awards a free kick. Gary Caldwell takes the direct free kick.
90:00+0:22 Effort from the edge of the area by Hugo Rodallega goes wide of the left-hand upright.
89:49 Booking Liam Ridgewell booked for time wasting.
88:58 Effort from inside the area by Jordi Gomez misses to the right of the target.
87:40 Gary Caldwell gives away a free kick for an unfair challenge on Kevin Phillips. Free kick taken by Barry Ferguson.
85:50 The referee blows for offside. Free kick taken by Joe Hart.
84:51 Foul by Jordi Gomez on Barry Ferguson, free kick awarded. Free kick taken by Scott Dann.
83:51 Substitution Jordi Gomez on for James McCarthy.
83:40 Substitution (Birmingham) makes a substitution, with Craig Gardner coming on for Stephen Carr.
83:07 Barry Ferguson takes a shot. Mario Melchiot gets a block in.
78:31 Liam Ridgewell challenges James McCarthy unfairly and gives away a free kick. Free kick crossed right-footed by James McCarthy.
73:32 Unfair challenge on Mohamed Diame by Sebastian Larsson results in a free kick. Titus Bramble takes the free kick.
72:44 Hendry Thomas gives away a free kick for an unfair challenge on Cameron Jerome. Direct free kick taken by Joe Hart.
71:34 James McCarthy produces a cross.
70:57 Kevin Phillips concedes a free kick for a foul on Mario Melchiot. Gary Caldwell takes the direct free kick.
69:17 Free kick crossed right-footed by Barry Ferguson from left channel, Unfair challenge on Mohamed Diame by Roger Johnson results
in a free kick. Chris Kirkland takes the free kick.
69:17 Booking Gary Caldwell goes into the referee's book for unsporting behaviour.
69:08 Gary Caldwell concedes a free kick for a foul on Cameron Jerome.
68:29 Short corner worked by James McCarthy.
68:05 Outswinging corner taken from the right by-line by James McCarthy, clearance by Roger Johnson.
67:50 Outswinging corner taken from the right by-line by James McCarthy, Scott Dann makes a clearance.
67:24 Hugo Rodallega takes a shot. Save by Joe Hart.
64:23 James McCarthy challenges Liam Ridgewell unfairly and gives away a free kick. Joe Hart takes the direct free kick.
63:46 Substitution Kevin Phillips replaces James McFadden.
62:22 James McFadden takes a shot. Chris Kirkland makes a save.
61:17 Effort from deep inside the area by James McCarthy misses to the left of the target.
60:59 Victor Moses takes a shot. Roger Johnson gets a block in.
60:39 A cross is delivered by Mohamed Diame, clearance by Roger Johnson.
59:06 Unfair challenge on Titus Bramble by James McFadden results in a free kick. Free kick taken by Gary Caldwell.
58:35 Shot by Jason Scotland from outside the box goes high over the crossbar.
58:01 Lee Bowyer takes a shot.
56:33 Hugo Rodallega takes a shot. Joe Hart makes a save.
55:56 Jason Scotland takes a shot. Blocked by Stephen Carr.
54:46 Foul by Sebastian Larsson on Victor Moses, free kick awarded. Free kick taken by Maynor Figueroa.
53:12 Joe Hart takes the free kick.
53:12 Booking Hugo Rodallega receives a caution.
52:51 Roger Johnson fouled by Hugo Rodallega, the ref awards a free kick.
52:30 Unfair challenge on Mario Melchiot by Cameron Jerome results in a free kick. Gary Caldwell takes the free kick.
51:44 The ball is crossed by Maynor Figueroa.
49:25 Lee Bowyer concedes a free kick for a foul on Hugo Rodallega. The free kick is swung in right-footed by Mario Melchiot.
47:28 James McCarthy gives away a free kick for an unfair challenge on Keith Fahey. The ball is swung over by Sebastian Larsson,
Close range headed effort by Scott Dann misses to the right of the goal.
46:51 Barry Ferguson gives away a free kick for an unfair challenge on Mohamed Diame. Free kick crossed by Hugo Rodallega, save
made by Joe Hart.
45:01 The referee gets the second half started.
45:01 Substitution Charles N'Zogbia leaves the field to be replaced by Victor Moses.
45:01 Substitution Jason Scotland comes on in place of Paul Scharner.
45:00+3:20 It is the end of the first-half.
45:00+1:58 GOAL - James McFadden:Birmingham 1 - 0 Wigan Penalty taken left-footed by James McFadden and scored. Birmingham 1-0 Wigan.
45:00+1:57 Keith Fahey provided the assist for the goal.
45:00+1:06 Mario Melchiot gives away a Penalty for an unfair challenge on Keith Fahey.
44:12 Mario Melchiot fouled by Cameron Jerome, the ref awards a free kick. Direct free kick taken by Chris Kirkland.
40:56 Sebastian Larsson challenges Mario Melchiot unfairly and gives away a free kick. Chris Kirkland restarts play with the free
40:21 James McFadden takes a shot. Save made by Chris Kirkland.
38:24 Joe Hart restarts play with the free kick.
38:24 Booking The referee cautions Charles N'Zogbia for unsporting behaviour.
38:09 Unfair challenge on Lee Bowyer by Charles N'Zogbia results in a free kick.
37:18 Inswinging corner taken by Charles N'Zogbia from the right by-line.
36:24 The referee blows for offside against Scott Dann. Chris Kirkland restarts play with the free kick.
35:32 Free kick awarded for an unfair challenge on Keith Fahey by Mohamed Diame. Sebastian Larsson crosses the ball from the free
kick right-footed from left channel.
34:05 James McFadden is caught offside. Free kick taken by Chris Kirkland.
30:34 Sebastian Larsson takes a short corner.
30:17 Cameron Jerome takes a shot. Chris Kirkland makes a save.
29:31 Free kick awarded for an unfair challenge on Liam Ridgewell by Charles N'Zogbia. Free kick taken by Joe Hart.
27:29 Stephen Carr crosses the ball, clearance made by Titus Bramble.
27:05 Free kick awarded for an unfair challenge on Lee Bowyer by Mohamed Diame. Sebastian Larsson restarts play with the free kick.
26:36 James McCarthy takes a shot.
25:54 Stephen Carr gives away a free kick for an unfair challenge on James McCarthy. Chris Kirkland takes the direct free kick.
24:56 Shot from just outside the penalty area by Cameron Jerome misses to the left of the target.
21:35 Corner from the left by-line taken by Sebastian Larsson, Close range header by Scott Dann misses to the right of the goal.
20:26 Free kick awarded for an unfair challenge on Barry Ferguson by Paul Scharner. Direct free kick taken by Joe Hart.
19:42 The ball is crossed by Keith Fahey, clearance made by Titus Bramble.
18:51 Unfair challenge on Lee Bowyer by Mohamed Diame results in a free kick. Roger Johnson restarts play with the free kick.
17:30 Hugo Rodallega is caught offside. Free kick taken by Joe Hart.
13:49 Foul by Maynor Figueroa on Sebastian Larsson, free kick awarded. The ball is delivered by Sebastian Larsson, Scott Dann takes
10:48 Inswinging corner taken by Charles N'Zogbia.
10:20 Charles N'Zogbia takes a shot. Blocked by Stephen Carr.
8:38 Effort from outside the penalty box by Hugo Rodallega goes wide right of the target.
7:03 Mario Melchiot fouled by James McFadden, the ref awards a free kick. Free kick taken by Gary Caldwell.
6:38 Foul by Cameron Jerome on Gary Caldwell, free kick awarded. Free kick taken by Titus Bramble.
1:01 James McFadden fouled by Mohamed Diame, the ref awards a free kick. Free kick taken by Barry Ferguson.
0:00 The game kicks-off.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.