The U's made it just one defeat in the last 11 matches thanks to quick-fire goals from Mark Yeates and Scott Vernon just before the hour mark.
But it could all have been so different if Northampton had not gone down to ten men just before half-time when they were leading via a 27th minute strike from Adebayo Akinfenwa.
The Northampton culprit was Paul Rodgers, who was making only his second appearance for the club since his loan move from Arsenal.
Rodgers was booked for chopping down Yeates in the 39th minute and another rash challenge on Marc Tierney in the first minute of stoppage time secured him a second yellow and ensuing red card.
Down to ten men for the whole of the second half, Northampton made tactical switches straight after half-time with strikers Billy Clarke and Akinfenwa both sacrificed in a new defensive formation.
But the visitors could not hold on and starman Yeates levelled the game in the 57th minute.
Defender Pat Baldwin flicked on a cross from Dean Hammond and there was Yeates to rifle home his tenth goal of the season.
Just 60 seconds later and Colchester were ahead.
Midfielder Ken Izzet's delightful shot cannoned back off the bar and an on-rushing Vernon stooped low to head home the rebound into an empty net.
Northampton briefly rallied and home keeper Jimmy Walker was forced into one late save by clawing away a long-range shot from substitute Andy Holt.
But that was the only real scare as Colchester moved closer to the top ten.
Paul Lambert's men have now collected 24 points from a possible 33 in their last 11 league matches - a run which has seen them move out of the relegation zone and well into the top half of the table.
But Northampton will point to the fact that the sending off of Rodgers really cost them this game.
A win would have seen them leapfrog Colchester in the table but, as it is, they are now six points adrift of their Essex rivals.