The Blades struck twice in the space of two early first-half minutes.
Harry Maguire headed Tony McMahon's free-kick into the far corner of the net in the 10th minute.
And the Blades doubled their lead when Porter closed down Magnus Okuonghae's attempted pass and delivered a cross-shot which flicked in off Tom Eastman, despite keeper Sam Walker's attempts to keep it out.
Matt Hill struck the crossbar for the visitors and Sheffield United were the better side in the first half.
But Colchester reduced the deficit three minutes after the break when Macauley Bonne headed in after Clinton Morrison had flicked on Luke Garbutt's delivery.
And Garbutt drove in a superb low shot from 25 yards from Brian Wilson's throw to equalise just after the hour.
But after Okuonghae was adjudged to have handled Maguire's header in the area, Porter netted from the spot to send the Blades through.