Both goals came in the first half with Harry Maguire equalising just before the break after Freddie Sears had given Colchester the lead.
But it was Colchester who took a 25th-minute lead when they caught their opponents on the break following a corner. Sanchez Watt advanced towards the penalty area before slipping the ball to Sears who beat George Long with a low shot.
Maguire (45) equalised with the help of an error from keeper Walker after firing a shot on target. Walker appeared to have it covered but the ball squirmed from his grasp and went just inside his left-hand post.
Walker atoned for his earlier error with saves from Lyle Taylor and Conor Coady, and also reacted smartly to beat Taylor to Fabien Brandy's ball through the middle.