It was far from a comfortable afternoon for high-flying Rovers against a side that had failed to win in their previous five matches.
But Rowe scored in the last seconds of the first half to give Doncaster something to work with after the break. The midfielder latched onto the ball after a fine dummy from John Marquis and clipped a shot over Colchester goalkeeper Sam Walker.
The visitors had done a superb job to stifle Doncaster's passing game with high-intensity pressing in midfield.
And Colchester arguably had the more dangerous chances. Chris Porter rose unmarked but headed straight at Marko Marosi a matter of seconds before Doncaster took the lead.
Marquis really should have doubled the advantage in the second half. Inexplicably left unmarked standing just inside his own half, the striker latched onto a long clearance and attempted to round Walker but saw his shot cleared off the line by Richard Brindley.
Colchester piled on the pressure in the latter stages but Doncaster held firm.
Report supplied by the Press Association.
Match ends, Doncaster Rovers 1, Colchester United 0.
Second Half ends, Doncaster Rovers 1, Colchester United 0.
Attempt missed. Sammie Szmodics (Colchester United) left footed shot from the left side of the box is just a bit too high.
Foul by Mathieu Baudry (Doncaster Rovers).
Luke Prosser (Colchester United) wins a free kick on the left wing.
Mathieu Baudry (Doncaster Rovers) wins a free kick in the attacking half.
Foul by Luke Prosser (Colchester United).
Attempt missed. Denny Johnstone (Colchester United) header from the centre of the box is close, but misses to the left.
Attempt missed. Macauley Bonne (Colchester United) right footed shot from the centre of the box is too high.
Attempt saved. John Marquis (Doncaster Rovers) right footed shot from the centre of the box is saved in the centre of the goal.
Attempt missed. John Marquis (Doncaster Rovers) left footed shot from outside the box is close, but misses to the right.
Attempt saved. Macauley Bonne (Colchester United) right footed shot from the left side of the box is saved in the bottom left corner.
Attempt blocked. John Marquis (Doncaster Rovers) right footed shot from the centre of the box is blocked.
Foul by Riccardo Calder (Doncaster Rovers).
Drey Wright (Colchester United) wins a free kick on the right wing.
Substitution, Doncaster Rovers. Harry Middleton replaces Liam Mandeville.
Substitution, Doncaster Rovers. Mathieu Baudry replaces Joe Wright.
Attempt missed. Richard Brindley (Colchester United) header from the centre of the box is too high.
Hand ball by Riccardo Calder (Doncaster Rovers).
Foul by Macauley Bonne (Colchester United).
Joe Wright (Doncaster Rovers) wins a free kick in the attacking half.
Substitution, Colchester United. Macauley Bonne replaces Kurtis Guthrie.
Attempt missed. Richard Brindley (Colchester United) right footed shot from outside the box is just a bit too high.
Substitution, Colchester United. Denny Johnstone replaces Chris Porter.
Jordan Houghton (Doncaster Rovers) wins a free kick in the defensive half.
Foul by Drey Wright (Colchester United).
Foul by Drey Wright (Colchester United).
Jordan Houghton (Doncaster Rovers) wins a free kick in the attacking half.
Corner,  Colchester United. Conceded by Niall Mason.
Attempt saved. Kurtis Guthrie (Colchester United) header from the centre of the box is saved in the bottom right corner.
Substitution, Doncaster Rovers. Riccardo Calder replaces Tommy Rowe because of an injury.
Attempt missed. Kurtis Guthrie (Colchester United) header from the centre of the box is too high.
Substitution, Colchester United. Dion Sembie-Ferris replaces Kane Vincent-Young.
Chris Porter (Colchester United) wins a free kick in the defensive half.
Foul by Andy Butler (Doncaster Rovers).
Craig Slater (Colchester United) is shown the yellow card for a bad foul.
Foul by Craig Slater (Colchester United).
James Coppinger (Doncaster Rovers) wins a free kick in the defensive half.
Attempt missed. John Marquis (Doncaster Rovers) right footed shot from the centre of the box is close, but misses to the right.
Matty Blair (Doncaster Rovers) is shown the yellow card for a bad foul.
Tommy Rowe struck in first-half injury-time as promotion-chasing Doncaster edged past Colchester 1-0 to secure a third consecutive League Two win.