Genome-wide association studies (GWASs) have identified many complex trait loci. To understand the biological mechanisms underlying these, we pair a flexible Bayesian method with efficient computational techniques to model functional information in GWASs. We model the effect-size distribution and probability of causality for variants with different annotation, explicitly allowing for multiple causal-variants per locus. In simulations, our method shows higher power to identify true causal-variants than competing methods. In a GWAS of age-related macular degeneration with 33,976 individuals and 9,857,286 variants, we find the strongest enrichment for causality among non-synonymous variants (54x more likely to be causal, 1.4x larger effect-sizes) and among variants in active promoters (7.8x more likely, 1.4x larger effect-sizes). Importantly, when multiple causal-variants reside in the same locus, our approach improves upon the list of candidate variants produced by sequential forward selection or methods only allowing for a single causal-variant per locus. In conclusion, our method is shown to efficiently integrate functional information in GWASs, helping identify causal-variants and underlying biology.