The penalty was a harsh one against Luke Chambers for his tackle on Stern John but for the second Saturday running Michael McIndoe saw the keeper save his spot-kick.
McIndoe had squandered an earlier chance for City shooting wide of an open goal after good touches by Dele Adebola and David Noble had put him in.
The game was only minutes old and it looked to be one of those chances that was easier to score than miss and it quickly haunted the home side.
Forest's lead striker Nathan Tyson made them pay for the miss as he seized possession on the left and, from the byline, cut a ball back to Joel Garner.
Three defenders stood off as Garner lined up his shot firing it well wide of Adriano Basso's left hand.
It signalled an enthusiastic open game with Forest developing their game on both flanks and often looking more dangerous.
Tyson might have doubled their lead before the half-hour mark with a 15-yard shot which sailed past the far post.
There was a nasty collision of heads between Garner and home defender Jamie McCombe which was to have an impact on the outcome later on.
Both played on after lengthy treatment which added four minutes to the half but McCombe didn't come out for the second period, Cole Skuse taking over at centre-back.
City had equalised when Marvin Elliott thundered in a 25-yard shot off the bar but Skuse's first challenge 90 seconds after coming on saw Forest take the lead again.
Fed by Chambers, Tyson swept aside a weak interception with a well-placed shot from the left.
Chasing the game City sent on two strikers, John and Nicky Maynard, to give Adebola extra support.
It all paid off when a half-cleared McIndoe corner fell to Liam Fontaine to score from 20 yards.