Forest secured a point away from home but have now failed to score in five consecutive games, the first time they have done this in eight years.
In a quiet first half chances were few and far between for both sides, but Forest edged it in terms of shots on target.
The second half was more lively, with both sides getting forward and both teams having their chance to take the lead, but in the end they had to be satisfied with a share of the points.
Forest were the first team to be put under pressure when Nicky Maynard closed Joel Lynch
down. The Forest player stayed down and the ball broke in favour of Maynard but a good defensive block from Lewis McGugan
cleared the danger.
McGugan had Forest's first shot on target, in the 8th minute, after he won possession of the ball on the halfway line and shot from 25 yards, but his effort was too close to David James to cause him any problems.
After a good clearance by Luke Chambers
, Forest made a great break when Dexter Blackstock
played Paul Anderson
in down the left, but his cross wasn't good as was easily gathered by James.
Lynch, who had clearly been struggling, was substituted after just 21 minutes to be replaced by Brendan Moloney
threatened City with his pace and his effort, fired in with pace to the near post, was put out for a corner.
And from the corner a great strike from Marcus Tudgay was saved well by James. Chambers almost put the rebound in but the City keeper managed to keep the ball out again.
Bristol City's first effort came five minutes before the break when Martyn Woolford shot from a tight angle on the edge of the penalty area but his effort went wide for a goal kick.
Another good move from the home side saw Stephen Pearson played in by Cole Skuse inside the Forest area, he pulls the ball back but Chambers gets back to clear.
Forest pushed forward early in the second half from a long ball forward by Lee Camp
which Blackstock flicked on towards Tudgay who got the ball past his man and seemed to have been brought down, but the referee was not interested.Radi Majewski
produced some good skill to gain himself some space down the left. He crossed powerfully but the ball went over the bar and onto the top of the net.
City threatened when Albert Adomah got away into the box where Chambers cleared the ball with a good challenge but then a cross came in from the right from Skuse to Woolford whose volley from the back post landed in the side netting.
Forest were nearly caught out when City made a quick break which ended with Marvin Elliott sending a powerful shot straight at Camp but he couldn't hold it and the ball came back out into a muddled Forest defence but Camp secured the ball from Maynard's attempt.
Forest were quickly back on the attack and a good cross from Greg Cunningham
almost caught James out but the keeper managed to tip the ball over for a corner.
Forest had another chance when they won a free kick 20 yards out on the left, which was taken by Jonathan Greening
. James punched the ball out as far as Majewski who sent in a powerful shot but the ball was deflected for another corner.
And they came close when Cunningham's cross found the head of Tudgay. The ball looked to be heading for the top corner but James produced another good save to deny Tudgay, tipping the ball over the crossbar.
A stoppage time chance for Forest went begging when the ball broke from Paul Anderson
. Tudgay tried a shot but mis-kicked and the ball went to Blackstock but he fired over.
Half the home crowd thought that Adomah had produced a last-minute winner for City when he produced some good footwork to get into the box and shoot from a tight angle, but the ball went into the side-netting.Nottingham Forest:
Camp, Chambers(C), Lynch(Moloney 22min), Gunter, Cunningham, Greening, Majewski, Anderson, McGugan, Tudgay, Blackstock
Subs not used: Smith, Reid, McGoldrick, FindleyBristol City:
James, McGivern, Fontaine(C), Nyatanga, Elliott, Kilkenny(Clarkson 90+2min), Woolford(Pittman 67min), Skuse, Adomah, Pearson, Maynard(Cisse, 89min)
Subs not used: Gerken, Wilson,
Bookings: Skuse 20min, Pearson 25min
Referee: B Malone
Attendance: 13,121 Away attn: 749