We compute the integral cohomology groups of the smooth Brill-Noether varieties $G^r_d(C)$, parametrizing linear series of degree $d$ and dimension exactly $r$ on a general curve $C$. As an application, we determine the whole intersection cohomology of the singular Brill-Noether loci $W^r_d(C)$, parametrizing complete linear series on $C$ of degree $d$ and dimension at least $r$.