Cadmium and zinc were added at 3 and 300 mg kg−1, respectively, to 23 soils and incubated at 16°C and 80% field capacity for 818 d. Following addition of metal, changes in the radio-labile concentrations of both elements were examined on seven separate sampling occasions over 818 d. At each sample time, soil pore water was extracted using Rhizon soil solution samplers, and concentrations of Cd, Zn, dissolved organic carbon, and major cations and anions were determined. The chemical speciation program WHAM 6 was used to determine free metal ion activity, (M2+). Similar measurements were made on a set of historically contaminated soils from old mining areas, sewage sludge disposal facilities, and industrial sources. The two data sets were combined to give a range of values for p(Cd2+) and p(Zn2+) that covered 5 and 4 log10 units, respectively. A pH-dependent Freundlich model was used to predict Zn2+ and Cd2+ ion activity in soil pore water. Total and radio-labile metal ion concentration in the solid phase was assumed to be adsorbed on the “whole soil,” humus, or free iron oxides to provide alternative model formats. The most successful models assumed that solubility was controlled by adsorption on soil humus. Inclusion of ionic strength as a model variable provided small improvements in model fit. Considering competition with Ca2+ and between Zn2+ and Cd2+ produced no apparent improvement in model fit. Surprisingly, there was little difference between the use of total and labile adsorbed metal as a model determinant. However, this may have been due to a strong correlation between metal lability and pH in the data set used. Values of residual standard deviation for the parameterized models using labile metal adsorbed on humus were 0.26 and 0.28 for prediction of p(Cd2+) and p(Zn2+), respectively. Solubility control by pure Zn and Cd minerals was not indicated from saturation indices. However there may have been fixation of metals to non-radio-labile forms in CaCO3 and Ca-phosphate compounds in the soils in the higher pH range. Independent validation of the Cd model was carried out using an unpublished data set that included measurements of isotopically exchangeable Cd. There was good agreement with the parameterized model.