With Hungarian centre-back Tamas Vasko struggling to mark Colchester's main striker Kevin Lisbie, City's back-line was in disarray.
Each time Lisbie ran at him, City were in trouble. He scored after six minutes, side-footing home from 12 yards for Colchester's first goal in four visits to Ashton Gate.
It followed a break-out from a corner and Lisbie almost grabbed a second two minutes later with Vasko standing too far off him to the fury of the home bench.
City's Brazilian keeper Adriano Basso fended off his right-footed flick and then made a good save from Johnnie Jackson before the Robins pulled their game together.
They did so down the flank where Ivan Sproule and Michael McIndoe were given space and time to move forward on a packed defence.
Chris Coyne, signed from stricken Luton Town for £350,000, did a resolute job at the heart of Colchester's defence, but their other new signing, Spurs' Phil Ifil, had a much more difficult time against Sproule.
Running on to a throughball from Lee Johnson, the Irishman put City level on 33 minutes with a thumping cross-drive past keeper Dean Gerken.
Trouble built for Colchester from a string of corners. From one, Vasko thought he had made up for his earlier errors, but was ruled offside. From another, Ifil cleared off the line, while McIndoe kept the pressure on with a shot which crashed onto the bar.
This was City's best spell but, after they failed to take their chances, Colchester upped their game in the second half and Jackson had the chance of the game to restore their lead.
For the final ten minutes, they played with substitute goalkeeper Mark Cousins after Gerken was injured, but City never had the finishing power to worry their visitors.