Rock heterogeneity plays an important role in solute spreading and mixing in hydrogeologic systems. Few observations, however, have been made that can spatially resolve these processes in 3-D, in consolidated rocks. We make observations of the spatially resolved steady state concentration of a sodium iodide solute while flowing brine through cylindrical rock cores using X-ray CT imaging. Three rocks with an increasing level of heterogeneity are chosen: a Berea sandstone, a Ketton carbonate, and an Indiana carbonate. The impact of heterogeneity on solute transport is analyzed by: (1) quantifying spreading and mixing using metrics such as the transverse dispersion coefficient, the dilution index, the reactor ratio, and the scalar dissipation rate and (2) visualizing and analyzing flow structures such as meandering, flow-focusing, and flow-splitting using isoconcentration contour maps. The transverse dispersion coefficient, D t , and the variation in D t throughout the rock core, increases with Pecl et number (Pe) and rock heterogeneity. The reactor ratio indicates that mixing is Fickian for the Berea sandstone and Ketton carbonate, but diverges for the Indiana carbonate. The temporal evolution of the scalar dissipation rate, a measure of the mixing rate, remains close to that of Fickian mixing for the Berea and Ketton rocks but not for the Indiana. Heterogeneous rock features are observed to cause meandering, focusing, or splitting of the plume depending on Pe.