Nottingham Forest held out with 10 men for more than half an hour to earn a goalless Championship draw at Bristol City.
The visitors had looked the better side until midfielder Ryan Yates picked up a straight red card from referee Craig Pawson after 56 minutes for a challenge on Adam Nagy, which provoked an angry reaction from City players.
From then on City poured forward in search of a winner, but were unable to create many clear openings against determined and well-organised opponents.
Both sides attacked with promise in an open first half, but it was Forest who carried the greater threat.
Tiago Silva's eighth-minute shot from just outside the box was deflected wide and the resulting corner to the far post saw Yates get in a low drive, only for Famara Diedhiou to clear off the line.
The visitors continued to create chances and Joe Lolley's 15th-minute shot was saved by Dan Bentley.
Lewis Grabban saw a 24th-minute effort deflected over before Andreas Weimann put in City's first goal attempt of note, a long-range shot that was a yard wide.
Forest's Sammy Ameobi picked up the first yellow card of the game for a late challenge after 36 minutes.
By then both defences were looking more secure, but it was City who could feel happier with the goalless half-time score having been under plenty of pressure.
Forest began the second half in a similar fashion to the first and Bentley had to make a 50th-minute save to keep out Silva's low drive.
But City were soon flexing their attacking muscles and went close to a 55th-minute lead when Weimann's low cross from the right took a deflection and struck the far post.
Then came Yates' reckless moment and 10-man Forest suddenly faced an uphill task.
Boss Sabri Lamouchi responded with a substitution, taking off Ameobi and sending on former City winger Albert Adomah.
City head coach Lee Johnson quickly made two changes of his own, introducing Kasey Palmer and Niclas Eliasson for Bailey Wright and Callum O'Dowda and switching to 4-4-2 from his wing-back formation.
Forest had a great chance to take the lead after 73 minutes when mistakes by Nagy and Adam Baker gifted a chance to Grabban, who lobbed Bentley but saw his effort go wide.
Weimann almost capitalised at the other end, but his volley from 12 yards cleared the crossbar. It was the striker's last action before being replaced by Rodri.
Forest goalkeeper Brice Samba was booked for time-wasting in the closing stages as his team had to defend a series of dangerous Eliasson crosses.
Rodri volleyed over from close range following an Eliasson corner and it proved City's last chance.