Electron and ion microprobe analyses for P, Si, Ti, Al, Cr, V, Sc, Fe, Mn, Mg, Ni, Co, Ca, Sr, Na, K and Li in olivine, pyroxenes and garnet in forty-two cold and twelve hot garnet lherzolites from kimberlites, nine spinel lherzolites from kimberlites and eighteen from alkali basalts, and one cold garnet lherzolite from the Malaita alnöite, are compared with published data for minerals occurring in lherzolite, harzburgite and eclogite xenoliths, for silicate megacrysts in kimberlites, and for silicate inclusions in diamonds. Despite wide ranges in the chemistry of minerals from garnet and spinel lherzolites, there are distinct regions in composition space that would enable determination of the parent lithology of disaggregated minerals in kimberlites and alkali basalts. Titanium correlates with Fe3+ in garnets. Chromium, Al, V and Sc are distributed similarly between silicates in lherzolites. Sodium correlates with trivalent ions in olivine, and increases with temperature. The distribution of Na, but not of K and Li, between olivine and clinopyroxene correlates with temperature. The regular partitioning of Ti, Mn and Ni places constraints on crystal-liquid partition coefficients. Above the stability temperature of mica, ‘metasomatising fluids’ may scavenge Cr and other trivalent ions as they increase Ti in silicates.