A simple and rapid pre-concentration technique was proposed for the simultaneous determination of eight trace heavy metals in water by energy-dispersive X-ray fluorescence (EDXRF) spectrometry. Yttrium was added as a carrier ion to a sample solution containing Cd, Cr, Cu, Fe, Mn, Ni, Pb and Zn. The metals were collected on a membrane filter as precipitates or co-precipitates with 1-(2-pyridylazo)-2-naphthol at pH 10. The metals on the filter were determined by EDXRF spectrometry. Yttrium improved the collection efficiency of Cr(III) drastically and also expanded the pH ranges for quantitative recoveries of the metals. Only fifteen minutes was required to prepare the membrane filter retaining the metals. Linear calibrations were obtained from mg L À1 to mg L À1 levels of the metals in 50 mL sample solution. The limits of detection were as follows: Cd, 1 mg L À1 ; Cr, 0.3 mg L À1 ; Cu, 1 mg L À1 ; Fe, 1 mg L À1 ; Mn, 0.3 mg L À1 ;Ni, 2 mg L À1 ; Pb, 2 mg L À1 ; and Zn, 2 mg L À1 . The sensitivities were sufficient for monitoring drinking water. The proposed method was applied to river water and underground water samples. The analytical results agreed with those obtained by GF-AAS for the detected metals. The recoveries of the spiked metals in the water samples were quantitative. This method was extended to the separation and determination of Cr(III) and Cr(VI). The proposed system of pre-concentration and EDXRF spectrometry has high potential for routine monitoring of trace heavy metals because of its simplicity and rapidity besides cost-effectiveness.