Ten-man Swansea City remain unbeaten on their travels as a third clean sheet from four away games secured a valuable point against Bristol City.
Steve Cooper’s Swans would have gone back to the top of the Championship with a win, and they could have done so had Andre Ayew and Mike van der Hoorn taken their clearest chances.
But another strong defensive display – despite a late red card for Jake Bidwell - at a venue where the Swans had been overawed last term, offered more encouragement
Cheered on by a travelling contingent of 2,300, Cooper’s men again showed their resilience to keep themselves firmly among the division’s early pacesetters even if they could not claim just a second win at Ashton Gate in 26 years.
Cooper had made two changes to the side that lost to Nottingham Forest, Kyle Naughton and George Byers coming in for Connor Roberts and Wayne Routledge.
The home side started purposefully, Joe Rodon making a key tackle to nullify one early break.
But Swansea did start to grow into the game, particularly getting some joy down the right flank through Ayew.
On the other side, Taylor Moore scythed down Bersant Celina to receive a deserved booking as the game struggled to really get going as the teams cancelled each other out.
Neither keeper had made any sort of save as the half-hour mark came and went, with Lee Johnson opting to make an early change as he sent on Famara Diedhiou for Nathan Baker in a reshuffle.
Grimes brought down Josh Brownhill to pick up a booking of his own, with Freddie Woodman seeing his first meaningful action by saving the resulting free-kick.
The best chance yet came seven minutes before the break. Tommy Rowe produced a fantastic cross that Diedhiou steered wide from close range when he ought to have found the net.
Jake Bidwell then made a fantastic block to deny Jack Hunt after the full-back’s overlapping run had allowed Callum O’Dowda to pick him out unmarked arriving into the box.
At the other end, Swansea forced Daniel Bentley into his first save courtesy of Matt Grimes’ curling free-kick but it was goalless at the break.
When neither side showed any signs of making inroads early in the second half, Johnson sent on Kasey Palmer in place of Sammie Szmodics.
But the Swans were starting to have some joy as their pressing game forced errors from the hosts and allowed them more time in the Robins’ half.
Byers nearly threaded a ball through to Borja as the Swans asserted themselves, with Celina firing over after a Naughton cross had been headed out to him on the edge of the area.
Fulton volleyed over after he and Ayew got in each other’s way looking to meet Borja’s cross and, with the Swans enjoying a strong spell, the Ghanaian headed a Grimes corner onto the roof of the net.
And he should have given Swansea the lead with 17 minutes left. Substitute Sam Surridge sent Ayew away down the right, but his final finish was straight at the advancing Bentley.
Chances kept coming, van der Hoorn heading over from another pin-point Grimes set-piece.
But the Swans then had their numbers reduced when Bidwell was harshly dismissed by referee Tony Harrington for a challenge on Niclas Eliasson.
But the visitors saw the game out for a merited point.
Bristol City: Daniel Bentley, Jack Hunt, Nathan Baker (Famara Diedhiou 30), Josh Brownhill (captain), Callum O’Dowda (Niclas Eliasson 58), Andreas Weimann, Sammie Szmodics (Kasey Palmer 54), Taylor Moore, Tommy Rowe, Ashley Williams, Han Noah Massengo.
Subs not used: Niki Maenpaa, Marley Watkins, Antoine Semenyo, Pedro Pereira.
Swansea City: Freddie Woodman; Kyle Naughton, Mike van der Hoorn, Joe Rodon, Jake Bidwell; Jay Fulton, Matt Grimes (captain); Andre Ayew, George Byers (Connor Roberts 90), Bersant Celina; Borja Baston (Sam Surridge 72).
Subs not used: Kristoffer Nordfeldt, Nathan Dyer, Wayne Routledge, Yan Dhanda, Ben Cabango.
Referee: Tony Harrington
Attendance: 22, 885