The current study investigated the concentration of heavy metals (HMs) in human hair associated with fish and rice consumption in Wuhan City, central China. The mean values of As in 8/10 fish species exceeded the food safety standard of 0.015 mg/kg. The mean values (mg/kg) of HMs in rice followed a descending order of Zn (13.7)> Cu (1.9)>Cr (0.51)>As (0.11) >Cd (0.08) >Pb (0.04). The ascending order of HMs for male hair was Cd < As < Cr < Pb < Cu < Zn, while As < Cd < Cr < Pb < Cu < Zn for female. 30% of hair Cr and 22% of hair Zn contents exceeded the recommended values. The middle age (19-44) and adult (45-59) groups were the most vulnerable group, as the concentration for most elements was high in these age groups. A significant correlation was found between fish-eating frequency and hair Zn (r = 0.213; p < 0.05), and As (r = 0.204; p < 0.05). High odd ratios were found in a population with high fish-eating frequency, especially for Pb (7.19), As (3.1), Zn (3.83), and Cd (3.7). A significant non-carcinogenic risk was associated with Cr exposure through consuming herbivores, filter feeders, and omnivorous fish. The cancer risk values of Cd exposure (1.54E-04) via rice consumption and As exposure (1.25E-04) via consumption of omnivores fish indicate precautionary measures.