Doncaster took a third-minute lead when David Cotterill's looping shot sailed in from the edge of the area after goalkeeper Mark Cousins' poor distribution had let Rovers in.
Rovers goalkeeper Gary Woods denied Andrew Bond and then saved from Freddie Sears, before Magnus Okuonghae's low deflected shot from the edge of the area flew in off a post to equalise for Colchester on the half hour.
Marcus Bean's shot from just inside the area crashed against the crossbar, but David Syers should have scored just before half-time for Rovers when he fired wide when through on goal.
But Doncaster restored their lead less than three minutes after half-time when Bond headed Cotterill's free-kick into his own net from close range.
Cotterill's run resulted in a shot that flashed just wide as Rovers left Colchester still searching for their first league win of the season.