But Haynes' finish at the death ensured the scoreline did in fact finish level and extended the Robins' unbeaten run to seven games, while Forest are now unbeaten in eight.
But overall, an uneventful encounter between two sides pushing for promotion to the top flight did very little to inspire.
Robins hot-shot Nicky Maynard was walking a tightrope for almost the entire clash having been booked after only 14 seconds for a bad foul on Chris Gunter.
And a frantic opening followed, although neither goalkeeper really touched the ball inside the opening quarter.
Forest were giving the ball away far too regularly, and easily, to be able mount any form of meaningful attack while City were comfortable in possession without really being clinical in the final third.
Joe Garner saw his 25-yard effort drift harmlessly wide before Radoslaw Majewski's shot from distance forced the first save of the game in the 42nd minute, albeit a comfortable one from Dean Gerken.
Both managers opted for rousing half-time team talks rather than substitutions in an attempt to freshen things up for the second half.
And, although Gary Johnson's side upped their tempo marginally after the restart, the opening 10 minutes provided much of the same disappointment as the first 45.
Reds defender Morgan was booked for diving in the 57th minute as he attempted to win the hosts a penalty out of nothing.
But Forest boss Billy Davies had seen enough from his side and opted to introduce former Bristol City favourite Dele Adebola into the fray.
Adebola found the net 16 times in 52 league appearances over two seasons for the Robins before rejecting a one-year deal at Ashton Gate over the summer in favour of a two-year contract in the East Midlands.
The game soon livened up with further substitutions from both benches but, as the encounter entered the final 20 minutes, there was still no sign of a breakthrough.
The closest attempt came in the 73rd minute as Forest would surely have grabbed the opener but for a crucial interception from Cole Skuse.
Reds substitute Garath McCleary had Adebola in space but instead tried to find Paul Anderson, who looked destined to put the ball into the back of the net but for a superb interception from Skuse.
With the game heading for a stalemate, Morgan then fired home from close range to seemingly settle matters five minutes from time.
But Haynes ensured City left the City Ground with a point.