Colchester brought Crystal Palace's mini-revival juddering to a halt. The visitors went ahead just past the hour when Jamie Cureton's cross was palmed onto the bar by Scott Flinders, allowing Karl Duguid to bundle home.
Six minutes later Colchester were 2-0 ahead after substitute Richard Garcia scored with a superb 20-yard shot.
Clinton Morrison's 86th minute header for Palace reduced the deficit, but two minutes later Chris Iwelumo tucked away a penalty after Garcia had been fouled.
Crystal Palace manager Peter Taylor:
"We lost the game in the second half.
"We are improving and we played well in the first half but we needed a goal.
"We defended poorly and looked a little bit sleepy and lacked an end product � I was hoping we would continue on our good run and get closer to the chasing pack."
Colchester manager Geraint Williams:
"I see them performing like that every day. Our players are finding they've got a bit more time on the ball in this league.
"They're all comfortable on the ball and the work ethic is second to none.
"We're not looking at any particular points total though - we'll have a look at the table at the end of the season."
Crystal Palace: Turner (Flinders 24), Lawrence, Ward, Hudson, Granville, McAnuff, Watson (Green 73), Hughes, Soares, Morrison, Kuqi (Scowcroft 73).
Subs Not Used: Kennedy, Fletcher.
Booked: Hughes.
Goals: Morrison 87.
Colchester: Gerken, Halford, Brown, Baldwin, Barker, Duguid, Izzet, Watson, Jackson (Garcia 60), Cureton, Iwelumo.
Subs Not Used: Cousins, Guy, Elokobi, McLeod.
Goals: Duguid 63, Garcia 70, Iwelumo 90 pen.
Att: 16,762.
Ref: R Lewis (Shropshire).