Match ends, Bristol City 0, Birmingham City 0.
Birmingham City moved in to the Championship play-off places as they recovered from a lacklustre first half to earn a draw at lowly Bristol City.
The Robins dominated before the break, creating numerous opportunities.
Blues keeper Tomasz Kuszczak made several fine stops, notably from Jonathan Kodjia, who also twice missed the target when well placed.
The visitors livened up in the second half and could have won it, but Jacques Maghoma had a brilliant shot saved.
Substitute Maghoma, who replaced Jon Toral after the midfielder was injured in a first-half challenge by Nathan Baker, was the key to Birmingham's improvement but could not help his side secure a fifth league victory in six games.
Despite being in good form and further buoyed by the presence of new arrival Diego Fabbrini and loan signing Ryan Shotton, who were both on the bench, Birmingham were outplayed in the first half.
Blues did not muster a shot on target and had to rely on keeper Kuszczak to keep them level as the hosts controlled the midfield and looked dangerous throughout.
Inside the first two minutes, Kuszczak blocked Marlon Pack's volley, while Kodjia had the home side's best opportunities, shooting wide, heading wastefully over and also forcing a fine one-handed save from the overworked keeper.
The Robins, who would have moved out of the relegation places with a win, also claimed for a penalty in first-half injury time when debutant Lee Tomlin went down under a Paul Caddis challenge only to be cautioned for diving.
But Maghoma led a much-improved second-half Blues display, creating a couple of decent openings and almost scoring with a wonderful strike that produced a brilliant save from keeper Richard O'Donnell.
Both sides had good chances for a late winner, Kieran Agard missing a great headed opportunity for the home side and James Vaughan narrowly failing to get on the end of a teasing cross at the other end.
Bristol City interim manager John Pemberton:
"Lee tells me he was clipped. I don't see why he would go down when he would have had a clear shot. We are frustrated not to have taken all three points, but it wasn't down to bad luck.
"We didn't get on the end of enough crosses and when we did the finishing wasn't good enough. But we were playing a very good side and it could turn out to be an excellent point.
"Lee showed some great touches in his first game for us and gave us that bit of extra quality on the ball. He picked up a foot injury, which is why he came off, but it was a very good debut.
"That's only two goals conceded in our last four games, all against good teams, which is a real positive."
Birmingham City boss Gary Rowett:
"It was a bad tackle by Baker. I have watched it again since the game ended and it looked even worse than it did at the time.
"It was a blessing for us to get in half-time with the scoresheet blank. We didn't play with enough quality and Bristol were the better side, without creating too many clear chances.
"We were much better after the break, but didn't show enough composure in the final third. There were several occasions when we tried to take too many touches.
"The way Bristol played suggested they may be in a false position. But we showed character on a day when we were not at our best."
- 17BakerBooked at 23mins
- 14ReidBooked at 56minsSubstituted forAgardat 80'minutes
- 9TomlinBooked at 45minsSubstituted forBurnsat 66'minutes
- 22KodjiaSubstituted forWilbrahamat 78'minutes
- 8GleesonBooked at 56mins
- 30BuckleySubstituted forVaughanat 80'minutes
- 20ToralSubstituted forMaghomaat 34'minutes
- 26DavisSubstituted forFabbriniat 62'minutes
- Robert Lewis
- Shots on Target
Second Half ends, Bristol City 0, Birmingham City 0.
Attempt missed. Stephen Gleeson (Birmingham City) right footed shot from outside the box is high and wide to the right. Assisted by Diego Fabbrini.
Attempt missed. Kieran Agard (Bristol City) header from the centre of the box misses to the right. Assisted by Luke Freeman with a cross.
Offside, Bristol City. Luke Freeman tries a through ball, but Aaron Wilbraham is caught offside.
Attempt blocked. Clayton Donaldson (Birmingham City) right footed shot from long range on the left is blocked. Assisted by Jonathan Grounds.
Attempt missed. Marlon Pack (Bristol City) right footed shot from outside the box misses to the left. Assisted by Aaron Wilbraham.
Foul by Wes Burns (Bristol City).
Clayton Donaldson (Birmingham City) wins a free kick in the attacking half.
Foul by Korey Smith (Bristol City).
Diego Fabbrini (Birmingham City) wins a free kick on the left wing.
Foul by Mark Little (Bristol City).
Diego Fabbrini (Birmingham City) wins a free kick in the defensive half.
Substitution, Birmingham City. James Vaughan replaces William Buckley.
Substitution, Bristol City. Kieran Agard replaces Bobby Reid.
Foul by Marlon Pack (Bristol City).
Stephen Gleeson (Birmingham City) wins a free kick in the defensive half.
Substitution, Bristol City. Aaron Wilbraham replaces Jonathan Kodjia.
Foul by Marlon Pack (Bristol City).
Maikel Kieftenbeld (Birmingham City) wins a free kick in the attacking half.