Kevin Lisbie hit a brace on his return to Charlton as struggling Colchester pulled off a surprise to dent Alan Pardew's promotion hopes.
Lisbie, who only managed to score 13 goals at The Valley in 12 years with the Addicks, added another two to that tally in the blue of Colchester with a penalty and a spectacular overhead kick to put one over on the man who released him in the summer.
By contrast fellow striker Chris Iwelumo, who moved in the opposite direction to Lisbie, fluffed his lines in front of goal.
Substitute Luke Varney pulled one back for Pardew's side in first-half stoppage time, but a Christmas period which has yielded three draws and two defeats may have all but ended their chances of automatic promotion.
Colchester, who kicked off rock-bottom of the table, saw out a typically nervy second half to secure their first win in seven attempts while Charlton trudged off to a chorus of boos.
The visitors were quickly on the attack with Mark Yeates playing in Lisbie, who was bravely denied by Nicky Weaver.
At the other end Iwelumo tested Dean Gerken with a low drive from the edge of the area.
But Colchester took the lead in the 15th minute after Patrick McCarthy challenged Lisbie in the box.
McCarthy and Lisbie went to ground together, but referee Clive Penton pointed to the spot and the Addicks old boy slammed home the penalty.
Charlton looked to hit back immediately and Jerome Thomas fizzed a shot into the side-netting.
But the hosts were leaving gaps at the back and Yeates fired narrowly wide before Clive Platt shot at Weaver.
Iwelumo, who hit 35 goals in two seasons with the visitors, squandered a gilt-edged chance for his new side when he headed Thomas' cross wide.
And Lisbie showed him the way to goal in fine style on the half-hour after the Charlton defence failed to deal with Yeates' cross.
Lisbie challenged McCarthy in the air and as the ball looped up, the 29-year-old hitman was first to react with a stylish bicycle kick which gave Weaver no chance.
Lloyd Sam fired wastefully over before exasperated Charlton boss Pardew hauled off McCarthy for Varney.
And the nippy frontman struck in first-half stoppage time when he swept home Sam's low cross from close range.
Varney had the ball in the net again before the interval but he was adjudged to have fouled Colchester full-back George Elokobi.
Lisbie spurned a glorious chance just after the restart when he wriggled clear in the area only to fire wide from the angle, before referee Penton waved away a penalty claim for an apparent handball by Addicks defender Jonathan Fortune.
Pardew was claiming a penalty when Elokobi bundled over Sam, before Iwelumo somehow managed to miss Sam's cross from a yard in front of goal.
Substitute Darren Ambrose should have secured a point in injury-time, but came up with a shocking miss when one on one with Gerken.
Teams
Charlton Weaver, Bougherra, McCarthy (Varney 36), Fortune,Powell (Ambrose 82), Sam, Zhi, Holland,Semedo (Moutaouakil 67), Jerome Thomas, Iwelumo.
Subs Not Used: Randolph, McLeod.
Booked: McCarthy.
Goals: Varney 45.
Colchester Gerken, White, Baldwin, Virgo, Elokobi, Yeates,Guttridge, Jackson, McLeod (Izzet 46), Platt, Lisbie (Guy 75).
Subs Not Used: Cousins, Sheringham, Balogh.
Booked: Guy.
Goals: Lisbie 16 pen, 29.
Att: 21,508
Ref: Clive Penton (Sussex).