Teddy Sheringham scored after just 52 seconds as Colchester ended a winless run of seven games and halted the Owls' six-game unbeaten streak.
The 41-year-old struck from 12 yards to open the scoring and George Elokobi fired United's second after Wednesday failed to clear Mark Yeates' corner.
Akpo Sodje replied from Steve Watson's cross before half-time.
But neither side could score in a tight second half despite chances for Elokobi and Wednesday's Jermaine Johnson.
Sheffield Wednesday manager Brian Laws:
"The second goal was a real killer for us and I am very disappointed. They deserved the points. I have no excuses.
"We were second best all the game and in all areas of the pitch.
"We need to regroup and focus against Southampton. We have to forget that previous result and, in the past, we've always done that and we've come back after a setback."
Colchester manager Geraint Williams:
"I was delighted with the win and delighted for the players. They put in everything and we deserved the three points.
"People have said we are too good to go down, but nobody is too good. You have to keep proving it and we have to keep going.
"This was a massive win because, when you don't get a result, sometimes belief can disappear. But we have kept going and we got the result we deserved."
Sheff Wed: Grant, Hinds, Simek, Beevers, Spurr, Whelan, O'Brien (Esajas 71), Watson, Jermaine Johnson, Sodje, Tudgay (Small 63).
Subs Not Used: Bullen, Lunt, Burch.
Goals: Sodje 36.
Colchester: Gerken, Jackson, Elokobi, Connolly (Baldwin 46), Virgo, Duguid, Izzet, Yeates, McLeod, Sheringham (Platt 73), Lisbie.
Subs Not Used: Cousins, Guy, Guttridge.
Goals: Sheringham 1, Elokobi 26.
Ref: Tony Bates (Staffordshire).