A late Tomas Kalas goal meant disappointment for the Sky Blues in their Championship opener at Ashton Gate.
Matty Godden had drawn the Sky Blues level after an early goal for the Robins, but Kalas scored the winner with less than ten minutes remaining.
The hosts made the breakthrough after 21 seconds when Nahki Wells played the ball across the box for Jamie Paterson, who slotted past Marko Marosi.
City looked for an immediate response and they went close through Gustavo Hamer when the midfielder had a pop from distance, which whistle over the bar.
The attack continued and they almost had the leveller when Matty Godden’s header was saved by Dan Bentley and on the follow-up Callum O’Hare’s shot came back off the post.
Up the other end, Famara Diedhiou saw his header well saved by Marosi, who collected the ball comfortably.
The hard work paid off and the Sky Blues found their leveller and it was a familiar sight as Matty Godden ran on to a ball in the box and fired it past Bentley to make it 1-1.
After drawing level, the Sky Blues looked to grab a second and they had chances before the break, with Hamer’s shot deflecting over the bar and Godden inches away from being on the end of an O’Hare ball across the box.
HALF-TIME: BRISTOL CITY 1-1 SKY BLUES
Mark Robins side had the first chance of the second half and it was Leo Ostigard again who continued to cause Bristol problems from set-pieces, with this time the Norwegian smashing a volley towards goal, but Bentley made the save.
Bristol brought Chris Martin on for his debut and he forced Marosi into a save, rising highest at the back post, but the City ‘keeper saved well.
Marosi was called into action again, this time he had to be aware to tip Tyreeq Bakinson’s shot over the bar.
However, Dean Holden’s side would retake the lead through Tomas Kalas, as he headed home from a corner to make it 2-1.
The Sky Blues came back fighting once more and good work down the right-hand-side by Tyler Walker created space for the striker to cut the ball back for Godden, but his shot was blocked.
Marosi produced a fine stop at the other end to deny Tommy Rowe, after the midfielder had drilled a ball towards goal.
FULL-TIME: BRISTOL CITY 2-1 SKY BLUES
Goals: Jamie Paterson 1’, Matty Godden 33’, Tomas Kalas 82’
Yellows: Gustavo Hamer, Tommy Rowe, Zak Vyner
Referee: John Brooks
Sky Blues Xl: Marko Marosi (GK), Josh Pask, Leo Ostigard, Kyle McFadzean, Dom Hyam, Ryan Giles, Gusatvo Hamer (60’ Sheaf), Liam Kelly (C) (23’ Shipley), Jamie Allen (67’ Walker), Callum O'Hare, Matty Godden.
Unused Subs: Tom Billson (GK), Fankaty Dabo, Michael Rose, Amadou Bakayoko.
Bristol City Xl: Daniel Bentley (GK), Jack Hunt, Zak Vyner, Tomas Kalas (C), Taylor Moore, Tommy Rowe, Han-Noah Massengo (58’ Bakinson), Famara Diedhiou (58’ Martin), Jamie Paterson, Andreas Weimann, Nahki Wells (78’ Semenyo).
Unused Subs: Max O’Leary (GK), Steven Sessegnon, Alfie Mawson, Niclas Eliasson.