The hosts came flying out of the blocks and raced into a third-minute lead.
Adam Reach delivered an inviting cross from the left which was powerfully headed to the roof of the net by Cristian Lopez, a first goal in English football for the Spanish striker on loan from Huddersfield.
It set the tone for a dominant first-half display from Shrewsbury who were denied further success by a couple of fine saves from goalkeeper Sam Walker, who did well to hold on to Dave Winfield's volley and Jon Taylor's 25-yard piledriver.
Colchester had offered no threat until they pulled level out of nothing two minutes before the break.
Clinton Morrison touched the ball to Marcus Bean and his low angled shot found the far corner of the net despite goalkeeper Chris Weale getting a good hand to the ball.
The two sides cancelled each other out for long stages of a second half largely devoid of goalmouth action.
But Gavin Massey came close to a late winner for the visitors when he fired just wide from the edge of the box.