An isolated moment of brilliance decided a forgettable game between two teams desperate for points at the foot of the Sky Bet Championship.
A turgid first half gave way to a more enterprising second period capped by a stunning free kick from Forest midfielder Ben Osborn in the 67th minute.
For all City’s territorial pressure, they were unable to seriously trouble former Ashton Gate keeper Stephen Henderson in the Forest goal and ultimately fell to an eighth successive league defeat.
Lee Johnson handed a debut to German shot-stopper Fabian Giefer in one of two changes to his side who won at Fleetwood Town in the Emirates FA Cup.
Elsewhere, Tammy Abraham was restored to partner Milan Djuric up front at the expense of Gustav Engvall.
The City Ground was the scene of an angry protest before kick-off as hundreds of Forest supporters made their feelings known towards owner Fawaz Al-Hasawi following another manager departure last weekend.
But once the action kicked off, the ill feeling gave way to a rather flat atmosphere as neither team were able to make an early impression.
Osborn came close with a low shot from 25 yards that skidded wide of Giefer’s left-hand post, but that was it for the first 20 minutes.
David Vaughan skied another effort from distance before Eric Lichaj hammered a shot against Joe Bryan as Forest began to up the ante, but City remained untroubled.
At the other end, Johnson would have liked to have seen more of an attacking threat. Djuric was winning more than his fair share in the air, but too often City were beaten to the second ball.
Mark Little went into the book ten minutes before the interval for holding back Jamie Ward before Britt Assombalonga headed the resulting free kick over the bar.
Giefer, much like opposite number Henderson, had been a virtual spectator until he was suddenly called into action to make a sharp stop four minutes before the break.
When Forest attacked down the left and the ball was crossed in, it just ran fractionally behind onrushing winger Matty Cash.
That left the youngster having to adjust at the last minute and unable to steer his attempt on target, instead seeing his wayward shot take a huge deflection that prompted Giefer into a fine reaction save down to his right.
City finally registered an attempt in the closing stages, as Aden Flint nodded down a long free kick to Djuric, but the big Bosnian striker snatched at the chance and it sailed over.
Johnson’s response was to make a double substitution. Gary O’Neil and Little were the men sacrificed, with the young legs of Josh Brownhill and Callum O’Dowda introduced.
Straightway there was a reaction. Brownhill won the ball on the halfway line and O’Dowda played a neat one-two before his deep cross was put behind by Jamie Paterson, who was trying to help it back into the danger zone.
Then Assombalonga raced through for Forest, but Giefer got his angles right at his near post and there was no gap for the striker to find.
The second half was already more eventful than the first within five minutes of the restart.
Hordur Magnusson hurled a long throw into the box that took a glancing touch off a defender and dropped perfectly for Paterson on his left foot, but the ex-Forest man sent his low volley inches wide from the best chance of the game to date.
City needed 17-goal marksman Abraham more involved and his influence grew around the hour mark.
First he forced a save from Henderson from a tight angle, before Brownhill produced an excellent burst from midfield and combined with Paterson to cross low for Abraham, whose first-time shot was bravely blocked by Michael Mancienne.
But the Chelsea loanee was soon at the centre of controversy when he looked to have been fouled right in front of Johnson’s technical area.
When no free kick was awarded, Forest launched an attack and duly won one of their own in prime shooting range 25 yards out.
What followed was a moment of magic. The ball was tapped to Osborn, who flicked it up for himself and crashed an unstoppable volley over the wall and into the net to leave Giefer rooted to the spot.
Johnson did not hesitate to bring on Lee Tomlin, who was already stripped before the free kick was taken and duly replaced Djuric.
City enjoyed no shortage of pressure as they hunted a route back into the contest, but no longer had their tallest player on the field as Forest survived a barrage of crosses.
Bailey Wright nodded wide from a late O’Dowda corner, while Giefer was sent forward from an even later one as Forest pleaded for the whistle.
There was still time in the last of five added minutes for Jens Hegeler to head wide from ten yards, but City were beaten.