Vale made all of the early running with Mark Marshall heading Adam Yates’ cross straight at visiting keeper Sam Walker and Ben Williamson failing to convert two decent chances.
Michael O’Connor then had two fierce shots charged down close to goal before Carl Dickinson blasted wide with Colchester forced firmly on the back foot.
Vale keeper Sam Johnson finally made a save in the last minute of the first half from a deflected Alex Gilbey shot.
Colchester did show more ambition at the start of the second period and took a 57th-minute lead.
Chris Porter’s pass set up George Moncur for a low shot from14 yards to send the ball just inside the bottom right-hand corner of Johnson’s net.
Vale immediately introduced substitutes Tom Pope and Mohamed Coulibaly in an attempt to pep up their attack.
But Colchester landed the killer blow in the 77th minute when Jacob Murphy outstripped Chris Robertson and fired a fierce low shot inside the post.
Vale’s consolation goal came six minutes from time when Louis Dodds volleyed high into the net from 10 yards.