Bristol City fought back to deny Swansea victory in an entertaining 1-1 Sky Bet Championship draw in rain-soaked South Wales.
Jason Knight’s towering header 14 minutes from time gave the Robins a share of the points that their second-half performance warranted.
Swansea had led from the 15th minute when centre-back Ben Cabango claimed a rare goal from Eom Ji-sung’s corner.
The deadlock was broken in contentious circumstances as Robins goalkeeper Max O’Leary appeared to be pinned on his goal-line by Ronald and unable to challenge for a ball that Cabango stroked home.
Wales striker Liam Cullen dropped out through illness to allow Slovenian striker Zan Vipotnik to make his third league start for Swansea.
Yu Hirakawa made his first Bristol City start and the Japanese winger was prominent as the Robins fashioned early openings.
Goalkeeper Lawrence Vigouroux held Anis Mehmeti’s header under his crossbar and then produced a superb reflex stop from Scott Twine’s powerful volley.
Swansea stirred gradually and struck after George Tanner deflected Vipotnik’s effort behind.
With the help of Ronald, Eom’s corner made it towards the far post and the unmarked Cabango bagged his first goal since April 2023.
Bristol City came within inches of an instant riposte as Sinclair Armstrong prodded against the woodwork before Swansea almost doubled their lead in bizarre circumstances.
Ollie Cooper pressed to block Zak Vyner’s attempted clearance 40 yards out with Robins goalkeeper O’Leary out of position.
O’Leary had to watch in horror as the ball ran towards his unmanned goal before striking the outside of a post.
Cooper made his first Wales start in Montenegro earlier this month and was playing with a confidence and freedom that posed the visitors numerous problems.
Goncalo Franco accepted a delightful Cooper pass to beat Luke McNally and smash a shot straight at O’Leary, who pushed the ball to safety.
Zipotnik chested wide after Cooper switched from his station on the left to pop on the right, and Swansea possibly counted themselves unlucky to lead by only one at the break.
But Swansea were fortunate to survive within three minutes of the restart as Mehmeti released Armstrong for a one-on-opportunity that Vigouroux thwarted with his legs.
Chances were not as common with both sides tightening up at the back, but there was no let-up to the ferocious pace and the number of bodies being put on the line.
Ronald sliced wide but Bristol City continued to push for an equaliser and Knight rewarded their growing pressure with a thumping header from six yards.
Vigouroux just about kept out Mark Sykes’ header as the Robins sensed victory and, although Cabango went to ground for a late penalty shout, Swansea were grateful to collect one point by the end.