Brentford enjoyed the better of the first half and Colchester keeper Ben Williams parried Gary Alexander’s header in the opening 15 minutes.
However, Williams could do little to prevent Alexander from giving the Bees a 27th-minute lead. The former Millwall man swept home his sixth goal of the season from close range after Marcus Bean had flicked on Sam Saunders’ corner.
Brentford keeper Richard Lee denied Kayode Odejayi and Ashley Vincent sliced over just before the break but the visitors deserved their half-time lead.
Bean might have doubled the Bees’ advantage eight minutes after the break when he glanced Saunders’ cross wide from close range.
But Charlie MacDonald converted substitute Michael Spillane’s low cross in the closing stages to seal Brentford’s win.