It was not one of Birmingham's better performances but they did extend their unbeaten run to 14 games.
Fortunately, Ferguson popped up with his first goal for Birmingham in the 62nd minute.
Forest, in the 100th clash between the two teams, were far from outclassed by Birmingham and for much of the game were often the more dangerous, but the Premier League club's resolute defensive work again held firm to carve out another victory.
Following the goalless draw at the City Ground, it was hardly surprising that Birmingham showed Forest the greatest respect by again naming an unchanged side.
But they again produced an indifferent first half as they did against Manchester United.
They found Forest, previously unbeaten on the road this season, lively opposition in a hectic first period.
Forest gave an early indication of their threat when Nathan Tyson, who could have scored a hat-trick, went very close with a first minute header.
It posted Forest's determination to fully test the top-flight side, who became increasingly frustrated by their inability to dominate their Championship rivals.
With Lewis McGugan proving troublesome, Forest impressed with their skill and enthusiastic play which put Birmingham on the defensive for long spells.
Birmingham lacked finishing power with Cameron Jerome having a frustrating time against Wes Morgan.
It was not until the 25th minute that Birmingham finally managed to get in a couple of shots.
Seb Larsson, set up by James McFadden, shot wide but seconds later fully tested Lee Camp with a powerful low shot.
But Forest continued to look the more dangerous and not for the first time in recent games Birmingham were indebted to their young goalkeeper Joe Hart.
He came up trumps when a shot form Dele Adebola - who played for Birmingham some eight years ago - was blocked into the path of David McGoldrick, who saw his effort from close range saved by Hart.
Birmingham appeared jaded and early in the second half they had another escape when the unmarked Tyson completely missed his kick.
There was another anxious moment for Birmingham when McGugan's free-kick on the edge of the penalty area went through the wall but man of the moment Hart made a comfortable save.
The stalemate was broken in the 62nd minute when Christian Benitez played a neat pass into the path of Ferguson to slot home a low left-footed shot to give Birmingham a somewhat fortunate lead.
Birmingham continued to live dangerously. They sent on three substitutes Keith Fahey Kevin Phillips and Gary McSheffrey as Forest sent in search of the equaliser.
Their best opportunity again fell to Tyson but he was again sadly off target to the relief of the home fans in the lowest attendance at St. Andrew's this season.