The effects of calcite precipitation on porous media permeability and flow were evaluated with a combined experimental and modeling approach. X-ray microtomography images of two columns packed with glass beads and calcite (spar crystals) or aragonite (Bahamas ooids) injected with a supersaturated solution (log Ω = 1.42) were processed in order to calculate rates of calcite precipitation with a spatial resolution of 4.46 µm. Identification and localization of the newly precipitated crystals on the 3D images was performed and results used to calculate the crystal growth rates and velocities. The effects of carbonate precipitation were also evaluated in terms of the integrated precipitation rate over the length of the column, crystal shape, surface area and pore roughness changes. While growth was epitaxial on calcite spar, calcite rhombohedra formed on glass beads and clusters of polyhedrons formed on aragonite ooids. Near the column inlet, calcite precipitation occurred preferentially on carbonate grains compared to glass beads, with almost 100% of calcite spar surface area covered by new crystals versus 92% in the case of aragonite and 11% in the case of glass beads. Although the experimental chemistry and flow boundary conditions in the two columns were similar, their porosity-permeability evolution was different because the nucleation and subsequent crystal growth on the two substrates (i.e., calcite spar and aragonite ooids) was very different. The impact of mineral precipitation on pore-scale flow and permeability was evaluated using a pore-scale Stokes solver that accounted for the changes in pore geometry. For similar magnitude reductions in porosity, the decrease in permeability was highest within the sample that experienced the greatest increase in pore roughness. Various porous media models were generated to show the impact of different crystal growth patterns and pore roughness changes on flow and permeability-porosity relationship. Under constant flow rate boundary conditions, precipitation resulted in an increase in both the average and maximum velocities. Increases in pore roughness led to a more heterogeneous flow field, principally through the effects on the fastest and slowest velocities within the domain.