The current study was carried out on dominant fish Oreochromis niloticus and water collected from the polluted Yamuna River, Agra, India. The heavy metals in water, recorded as follows: Fe > Mn > Zn > Cu > Ni > Cr > Cd and all were found to be above the prescribed limits. According to metal pollution index, exposed muscle (49.86), kidney (47.68) and liver (45.26) have been recorded to have higher bioaccumulation. The blood biochemical analysis of exposed O. niloticus indicated significant increase in activities of aspartate aminotransferase (+ 343.5%), alkaline phosphatase (+ 673.6%), alanine aminotransferase (+ 309.1%), and creatinine (+ 494.3%) over the reference. However, a significant decrease in albumin (A): globulins (G) ratio (− 87.86%) was observed. Similarly, the exposed fish also showed significant increase in total leucocyte count (+ 121%), differential leucocyte count, respiratory burst (+ 1175%), and nitric oxide synthase (+ 420%). The histological examination of liver and kidney showed tissue injury. Moreover, micronuclei (0.95%), kidney shaped nuclei (1.2%), and lobed nuclei (0.6%) along with DNA damage in the form of mean tail length in the liver (20.7 µm) and kidney (16.5 µm) was observed in the exposed O. niloticus. Potential health risk assessments based on estimated daily intake, target hazard quotient, hazard index, and target cancer risk indicated health risks associated with the consumption of these contaminated fishes. In conclusion, the present study showed that exposure to heavy metals contaminated water can alter immunological response; induce histopathological alterations and DNA damage in the studied fish. The consumption of this contaminated water or fish could have serious impact on human health.