Barry Robson scored from the spot in the fourth minute after being fouled by Josh Thompson.
The visitors then enjoyed a good spell with Freddie Sears seeing his free-kick deflected wide and Thompson heading over.
Sears also had a shot on the run saved by Blades goalkeeper George Long and fired over, while David Wright put a long-range effort off-target.
The home side came back into the game towards the end of the first half, with Michael Doyle having a 20-yard shot saved by Colchester goalkeeper Sam Walker.
Doyle went close to putting the hosts further ahead in first-half stoppage time when his long-range shot struck a post.
Kevin McDonald beat Walker with a low shot from distance in the 73rd minute to make it 2-0.
Walker then made a good save from Kitson, turning the striker's shot wide.
But Dave Kitson completed the scoring in stoppage time, pouncing on the rebound after Diego De Girolamo's shot had been parried by Walker.