Crusaders secured their first win in three Premiership games with Josh Robinson and Gavin Whyte on target.
Robinson got the final touch from close-range to make sure a goal-bound header from Colin Coates made it over the line in the 22nd minute.
Stuart Addis fouled Declan Caddell to give way a penalty but he made amends by saving Diarmuid O'Carroll's penalty.
In the second half Gavin Whyte scored the second for Crusaders who had skipper Colin Coates sent off late on.
Coates was dismissed when a challenge on Mark Surgenor earned him a second yellow card and will be suspended for Friday's league game at home to Dungannon Swifts.
Ballymena's best effort came just before half-time when skipper Allan Jenkins hit the post with a volley.
Crusaders stay in fourth place while it was a third league defeat in a row for eighth-placed Ballymena.
"This is a hard place to come and you have to be pleased to be heading down the road with three points," said winning manager Stephen Baxter.
"They hit the woodwork in the first half and if that had gone in it might have been different.
"But in the second half we were good and got a bit of penetration."