Ryan Lowe took his goal tally to 12 for the season with a brace to give Tranmere victory against Colchester.
Lowe opened the scoring when he met a Chris Atkinson cross to head home from the centre of the box.
He then doubled the home side's advantage from the penalty spot after Brian Wilson had brought down Jean-Louis Akpa Akpro.
Clinton Morrison's turn and finish in injury time pulled one back for Colchester but the hosts held on.
VIEW FROM THE DRESSING ROOM
Colchester United manager Joe Dunne told BBC Essex:
"I thought we deserved more than that. We controlled the game in the first half. We've had chances that we've got to take.
"I'll accept players missing chances when they get into positions, because generally the more you do it the more you'll score.
"What I won't accept, and what I think is crucial today, is the fact that we switched off for two set pieces. That's what has done us the game.
"That is unacceptable. People had their jobs to do and we didn't do them. We can't afford that, you can't do that. That's why we'll forever be fighting."
Tranmere Rovers 01 Williams 31 Otsemobor (Holmes - 5' ) 23 Ridehalgh 08 Wallace (Rowe - 93' ) 05 Goodison (Horwood - 12' ) 20 McNulty 15 Kirby 14 Atkinson 09 Lowe 26 Akpa Akpro 25 Peterson Substitutes 02 Holmes 03 Horwood 12 Rowe 16 Stockton 17 Power 22 Koumas 33 Mooney Colchester United 44 Walker 20 Wilson Booked 27 Garbutt 02 Wright (Bond - 57' ) 04 Okuonghae 18 Eastman 25 Vose (Bonne - 57' ) 06 Eastmond 17 Ibehre 22 Gilbey (Morrison - 72' ) 03 Dickson Booked Substitutes 01 Cousins 09 Morrison 14 Bond 23 Olufemi 35 O'Donoghue 39 Tozer 41 Bonne
Ref: Dean Whitestone