Both sides made changes for this FA Cup third round replay with injuries forcing out Cardiff skipper Mark Hudson and Kevin McNaughton.
Jay Bothroyd captained the team in Hudson's absence.
The Bluebirds started brightly and Ross McCormack went close with a lob before Peter Whittingham cut inside and fired in a shot that Dean Gerken somehow palmed behind for a corner.
The Robins hit back with a couple of corners and from one of them, McCormack raced clear but the visiting defence recovered and the chance was lost.
Evander Sno went down the left flank in the 19th minute but no one was in the centre to touch home his low cross.
Chris Burke slipped a pass into McCormack on the half hour but his shot went straight to Gerken.
Michael Chopra replaced Aaron Wildig in the 32nd minute after the youngster suffered a recurrence of his back injury and he went close twice after outpacing his markers.
Neither side made changes during the interval and the Bluebirds started where they left off with Burke forcing a corner but, when the ball was cleared, Adam Matthews was injured in a tackle but continued after treatment.
The Robins put two strikers on in the 61st minute and John Akinde was spoken to by the referee after bringing down David Marshall who had cleared a back pass.
Bristol began to push City back on defence and Darcy Blake replaced Burke as the Bluebirds looked to tighten up at the back.
The deadlock was broken by the Bluebirds in the 74th minute in fortunate fashion.
Chopra sent a shot against the post and Orr deflected the rebound into his own net.
Four minutes later, McCormack cracked a shot against the crossbar with Gerken beaten and then Chopra had a goalbound effort cleared by the keeper.
Chopra had a great chance to put the game beyond the visitors in the final minute but he sliced over with only the keeper to beat.