Williams and Brown each scored 12 for Army (8-8, 1-1 Patriot League).
It was the third straight defeat and second straight conference loss for Holy Cross (9-6, 0-2), the defending Patriot League champion. The Army victory also snapped the Crusaders' 23-game winning streak at home.
Paced by Richard, Army took a 17-9 lead in the first half, and was ahead 22-19 at the half despite a 7-0 Holy Cross run keyed by Kyle Cruze's 3-pointer.
Brown scored two 3-pointers and two free throws in the late second half run to give Army an insurmountable 46-33 lead with 5:46 remaining.
Holy Cross committed 22 turnovers with starting point guard, Pat Doherty, who injured his Achilles tendon against San Francisco on Jan. 5, out for all but one minute of the game. Holy Cross has been 0-3 since his injury.