Adequate contact with the soil is essential for water and nutrient adsorption by plant roots, but the determination of root–soil contact is a challenging task because it is difficult to visualize roots in situ and quantify their interactions with the soil at the scale of micrometres. A method to determine root–soil contact using X-ray microtomography was developed. Contact areas were determined from 3D volumetric images using segmentation and iso-surface determination tools. The accuracy of the method was tested with physical model systems of contact between two objects (phantoms). Volumes, surface areas and contact areas calculated from the measured phantoms were compared with those estimated from image analysis. The volume was accurate to within 0.3%, the surface area to within 2–4%, and the contact area to within 2.5%. Maize and lupin roots were grown in soil (<2 mm) and vermiculite at matric potentials of −0.03 and −1.6 MPa and in aggregate fractions of 4–2, 2–1, 1–0.5 and < 0.5 mm at a matric potential of −0.03 MPa. The contact of the roots with their growth medium was determined from 3D volumetric images. Macroporosity (>70 µm) of the soil sieved to different aggregate fractions was calculated from binarized data. Root-soil contact was greater in soil than in vermiculite and increased with decreasing aggregate or particle size. The differences in root–soil contact could not be explained solely by the decrease in porosity with decreasing aggregate size but may also result from changes in particle and aggregate packing around the root.