Substitute Dexter Blackstock grabbed a second-half hat-trick as Southampton struggled to see off gutsy Colchester.
Saints went behind to an early goal from Danns (left)
The U's started superbly and went ahead when Neil Danns headed in after Saints struggled to clear a Joe Keith corner.
But Blackstock turned the game after half-time. He slid in his first from a Paul Telfer free-kick on 50 minutes and made it 2-1 with a close-range shot.
And although Greg Halford blasted the equaliser from a Craig Fagan pull-back, Blackstock nodded in the winner.
Colchester could have been ahead as early as the third minute when Stephen Hunt's pass put Fagan clear on goal and Claus Lundekvam seemed to nudge him over.
But referee Michael Jones ignored the penalty protests.
Saints were too tentative in trying to clear Keith's corner soon after, giving Pat Baldwin the chance to lift the ball back into the area for Danns to head past the stranded Antti Niemi.
Blackstock had been left out of the side in favour of fellow youngster Leon Best despite an impressive performance against Birmingham on Sunday.
But the 18-year-old turned the game in the second half, nudging home a free-kick from fellow substitute Telfer on 50 minutes.
He grabbed his second four minutes later, clipping home from an awkward
angle after Dean Gerken spilled David Prutton's soft shot.
Halford struck a 64th-minute equaliser after Darren Kenton's slip allowed Fagan a clear run and cross from the left.
Colchester looked the more likely winners at that stage but once more the Telfer-Blackstock combination paid off as the striker nodded home a free-kick from almost underneath the crossbar.
The visitors threw caution to the wind in search of a late equaliser and there was some frantic defending in Saints' area as Fagan and Danns fired in shots.
Southampton: Niemi, Kenton, Lundekvam, Jakobsson, Van Damme,
Nilsson, Prutton, Anders Svensson (Fernandes 75),
McCann (Telfer 45), Best (Blackstock 45), Ormerod.
Subs Not Used: Blayney, Higginbotham.
Goals: Blackstock 50, 54, 80.
Colchester: Gerken, Stockley, Baldwin, Brown, Hunt, Keith,
Danns, Watson, Johnson (Garcia 83), Fagan, Halford.
Subs Not Used: Cade, Chilvers, White, Marriott.
Booked: Danns, Baldwin.
Goals: Danns 7, Halford 64.
Ref: M Jones (Cheshire).