Eutrophication in water bodies is caused due to excess of:
Excess nitrogen and phosphorus stimulate eutrophication by removing nutrient limitation on algae and cyanobacteria. Dense blooms reduce light penetration, and their eventual decomposition raises microbial oxygen demand, producing hypoxia or anoxia that can kill fish and benthic animals. Some cyanobacteria also release toxins. Mercury, lead, and cadmium are hazardous metals, but they do not drive the nutrient-enrichment process that defines eutrophication. Aquatic effects depend on chemical form, persistence, solubility, dose, and the capacity of organisms to metabolise or excrete the substance
Ref: Campbell Biology, Urry et al., 12th Ed., Unit 8 Ecology