Shrewsbury should have scored in the seventh minute when the unmarked Tom Eaves somehow headed over from eight yards from Jermaine Grandison's cross.
U's goalkeeper Sam Walker then denied Eaves soon afterwards but Colchester warmed to the task after that.
They came agonisingly close to taking a 25th-minute lead when skipper Brian Wilson's excellent free-kick from the edge of the area slammed against the underside of the crossbar before bouncing back into play.
And unlucky Colchester struck the woodwork again four minutes before half-time when Dominic Vose's long-range shot bounced off the bar.
Walker pushed away Paul Parry's free-kick just before half-time but Colchester went ahead in the 56th minute when Ibehre kept possession in the area before planting a low shot inside the far post from Alex Gilbey's pass.
Shrewsbury pressed for an equaliser after that but Colchester held out for a crucial three points.