Xincun Lagoon is an important fishing area in northern Hainan Island, China. It has long been exposed to pollutants from local sewage, breeding cages and fishing boats, resulting in serious pollution threats to the survival of fish. In this study, we examined the concentrations of seven trace metals (Cu, Pb, Zn, Cd, Hg, As and Cr) in sixteen economic fish species collected from Xincun Lagoon and their exposed environment (water and sediment). The concentrations of Pb and Zn in the water column were higher than the safety threshold stipulated by Chinese legislation, while the contents of all examined metals in the sediment and fish species were lower than the legislative thresholds set by China and international organizations. The contents of trace metals in the fish species in high trophic levels or those that prefer to live in/on the sediment layer were significantly higher than those in other trophic levels and pelagic/subbenthic fish, these species had homogeneous anthropogenic pollution sources for Cu, Zn, Cd, Hg and As. Our results show that the trace metal contents in fish were mainly affected by trophic level and habitat preference. The contribution of metal exposure from the sediment to metal accumulation in fish was lower than that in water, especially for the Cd and Hg in the sediment. These results provide valuable information for further understanding the species-specific patterns of metal accumulation in fish and the development of targeted conservation measures for the environment and fish consumers.