Dietary uptake is well known as the predominant pathway of heavy metal bioaccumulation in organisms. Our study used a typical tropical reservoir and fish as a modeling system to test the hypothesis that feeding habits and living habitats significantly affect heavy metal bioaccumulation in fish. Specifically, Cr, Mn, Fe, Ni, Cu, Zn, Cd, and Pb concentrations in water, sediment, and fish, and δ13C and δ15N in 13 fish species were detected in the Songtao Reservoir of Hainan Province, southern China. Our results indicated that Zn concentration in carnivorous fish was higher than in omnivorous fish. Principal components analysis visually differentiated pelagic, benthopelagic, and demersal fish groups. Moreover, we found that the fish feeding in the demersal habitat showed higher heavy metal levels than those in the pelagic habitat. Additionally, the heavy metal contents in demersal fish were significantly positively correlated with sediments, while no positive correlation was observed in pelagic-feeding fish. The δ15N and the concentration of Ni, Zn in fish had a significantly positive correlation, suggesting the potential biomagnification. In contrast, Ni, Fe, Cu, and Cd negatively correlated with fish body weight/length, indicating the growth dilution effects. Finally, the estimated daily intake (EDI) of the metals was far below the provisional tolerable daily intake (PTDI), and target hazard quotients (THQ) were <1.0, indicating that the fish had no risk for consumption risks. Overall, our finding partially validated the hypothesis that the feeding habits and living habitats significantly influence heavy metal bioaccumulation in fish, which might be a broad generality for metal exposure scenarios in aquatic environments.