Luke McNally’s powerful header ensured Bristol City rescued a point against Cardiff as the Severnside derby finished in an entertaining 1-1 draw.
Cardiff winger Anwar El Ghazi hit the post from close range with a golden chance in a first half otherwise dominated by the Robins.
Bluebirds winger Ollie Tanner broke the deadlock after the break in stunning fashion as he beat two defenders and smashed the ball into the top corner after Bristol City surrendered the ball cheaply.
Cardiff missed several opportunities to score a second goal and were made to rue their misses as McNally powered home a header on 73 minutes as Cardiff never fully cleared after Fally Mayulu hit the post.
A draw was probably a fair result, but does little to give either club any much-needed momentum going into the international break.
It is fair to say that this season has not yet panned out as either Bristol City or Cardiff City had hoped, with the two sides coming into the Severnside derby in 17th and 24th respectively in the Championship.
Liam Manning's side had at least enjoyed two recent draws and a clean sheet last time out, with the Robins unchanged from their 0-0 draw with Sheffield Wednesday.
Cardiff interim boss Omer Riza also named an unchanged XI after Cardiff's first win of the season against Millwall.
The Bluebirds have enjoyed recent supremacy in a fixture that is often feisty, winning the past three games against their rivals from over the bridge.
It was the hosts who produced the first opportunity of the match, but Sinclair Armstrong's shot was saved by Cardiff goalkeeper Jac Alnwick, who tipped his powerful effort over the bar.
Alnwick also had to push an effort from Armstrong wide as the hosts cut through Cardiff with some precise passing.
However, the hosts were grateful to some wayward finishing from Cardiff who missed an excellent chance to go ahead, with El Ghazi scooping a shot wide off the outside of the post from close range after Callum Robinson's mishit shot turned into a perfect cross.
Bristol City's Cameron Pring was stretchered off to a standing ovation on 18 minutes as the problems for the home side mounted, but they were a threat with McNally heading wide and Anis Mehmeti firing over, while Armstrong also shot wide from a tight angle.
Cardiff had lost five of their last six away league matches but they produced the first chance of the second half as Tanner's firmly struck drive hit a defender and bounced inches wide.
Torrential rain made for a slick and sodden surface and it was Cardiff who seized the momentum after the break as Bristol City's slick passing from the first half deserted them.
Tanner was not to be denied, however, scoring a stunning goal moments later as Rubin Colwill found him in space - and he twisted and turned past two defenders and lashed the ball into the top corner with his right foot.
The hosts kept conceding possession playing out from the back and Tanner missed a golden chance after Colwill again cleverly found him in space, with the winger firing his shot wide of the target.
Cardiff were cutting through the Robins and Colwill missed a great chance on the hour mark as he stabbed wide from Tanner's pinpoint cross.
The Bluebirds were made to rue their missed chances on 73 minutes when Joe Williams won back possession and produced a superb cross to the back post that McNally firmly headed back across goal into the corner of the net after Cardiff failed to clear from Mayulu hitting the post.
Midfielder Scott Twine had scored in each of his previous two appearances against Cardiff - for Burnley and Hull in 2023 - but his close-range effort was blocked on 79 minutes as the home side pushed for a winner that never arrived.
Bristol City: O'Leary, Tanner, Vyner, McNally, Pring (McCrorie 18'), Williams, Knight (C), Hirakawa (Sykes 55'), Mehmeti (Bird 55'), Twine (Earthy 84'), Armstrong (Mayulu 55'). Subs: Bajic, Naismith, Wells, McGuane.
Cardiff City: Alnwick, Ng, Goutas, Chambers, Bagan, Ralls (Rinomhota, 77'), Robertson (Siopis 84'), Colwill, Tanner (Kanga 77'), El Ghazi (Daland 66'), Robinson (O'Dowda 66'). Subs: Horvath, Turnbull, Willock, Méïté.