Abstract The objectives of the present study are: (a) to clarify the current levels of environmental exposure to lead (Pb) and cadmium (Cd) in Shaanxi Province in China in comparison with levels in other parts of mainland China; (b) to examine if there is any urban–rural difference in Pb and Cd exposure; and (c) to quantify the role of cereals as the dietary source of environmental exposure to these metals. For this purpose, triplet surveys on lead and cadmium exposure were conducted in the provincial capital of Xian and two farming villages A and B in Shaanxi Province, China in 1997. The grand geometric mean for lead (Pb) intake via foods (Pb-F), Pb in blood (Pb-B) and Pb in urine as corrected for creatinine concentration (Pb-Ucr) were 30 μg/day, 33 μg/l and 5 μg/g creatinine, respectively, with significant differences among the survey sites, e.g. Pb-B being higher in Xian (43 μg/l) than in the two villages (38 and 22 μg/l). The counterpart values for cadmium (Cd) intake via foods (Cd-F), Cd in blood (Cd-B) and Cd in urine (Cd-Ucr) were 6.1 μg/day, 0.46 μg/l and 2.8 μg/g creatinine, respectively, with no substantial inter-survey site difference. Thus, it was possible to conclude that, from comparison with the values reported in 1990s literature, the exposure of Shaanxi people to Pb and Cd is no higher than, and even possibly lower than, the levels reported for people in other parts of mainland China. The exposure to Cd was almost exclusively from foods, whereas the exposure to air-borne Pb was large enough in Xian to explain higher Pb-B and Pb-Ucr than the level in Village B despite lower Pb-F in Xian than in Village B. Cereals (wheat, rice, maize and foxtail millet) contributed 26 and 84% of dietary Pb and Cd intake, respectively.