A debut goal from Jabo Ibehre helped Colchester end their run of nine league games without a point.
Sam Mantom and James Baxendale both fired wide as Walsall dominated the game before Colchester's late show.
Ibehre calmly slotted home after Freddie Sears had closed down Ian McLoughlin to open the scoring.
Sears added a second from close range from substitute George Porter's cross to give the hosts their first points since November.
VIEWS FROM THE DRESSING ROOM:
Colchester United manager Joe Dunne told BBC Essex:
"I thought it was well deserved, especially our second-half performance. I felt we had to be very competitive today in terms of the game plan.
"It wasn't a great game, in terms of style or football. We dug in and it was a real good performance.
"It (the win) has been a long time coming.
"You feel all kinds of emotion when you lose that many games, the chairman two weeks ago talked me out of leaving. It's a great response from the players."
Colchester 44 Walker 02 Wright 04 Okuonghae Booked 20 Wilson 25 White 40 Thompson (Eastman - 46' ) 41 Clifford Booked 15 Bean (Sears - 75' ) 30 Wright (Porter - 62' ) 17 Ibehre 21 Massey Substitutes 29 Shaun Phillips 18 Eastman 14 Bond 39 Porter 09 Morrison 11 Sears 12 Samuel Walsall 28 McLoughlin 04 Butler 14 Purkiss 20 Benning 22 Downing 06 Featherstone (Bowerman - 85' ) 07 A Chambers 24 Baxendale (Hemmings - 80' ) 27 Mantom 09 Grigg 10 Paterson Substitutes 01 Grof 05 Holden 25 J Chambers 26 Taylor 11 Hemmings 21 Morris 17 Bowerman