Matrix acidizing is a widely used stimulation process during which acid is injected into the formation at pressures that are less than the fracturing pressure. The purpose of matrix acidizing is to improve formation permeability or to bypass damaged zones through rock dissolution. Because of precipitation and diagenesis, carbonate rocks might contain different compositions, including calcite (CaCO3), dolomite [CaMg(CO3)2], and other minerals. When acid is injected into the formation, reactions between acid and multiple minerals of carbonate rocks occur simultaneously. In this paper, a two–scale continuum model is implemented in UTCOMP, a 3D compositional reservoir simulator, coupled with IPhreeqc, a generalized code of PHREEQC as a module. PHREEQC is an open–source program that performs a wide variety of geochemical calculations (Charlton and Parkhurst 2011). For the UTCOMP/IPhreeqc coupled model, the two–scale continuum model describes the mechanisms of convection and dispersion, whereas IPhreeqc is used for the calculation of reactions between aqueous phase and minerals. We have validated the simulation model through comparison with the analytical solution. We also compared the UTCOMP/IPhreeqc coupled model with a simple–reaction model, in which the reaction is assumed to be a first–order reaction between acid and calcite, by modifying the IPhreeqc database to obtain consistent results. On this basis, we have investigated the effects of mineral compositions on acidizing efficiency and the wormhole–propagation process. It is found that mineralogy heterogeneity is a key factor that affects acidizing efficiency and the dissolution structure. This work contributes to simulating the acidizing process with complex geochemical reactions considering the chemistry of the aqueous solution interacting with minerals. The presented model improves our understanding of carbonate–acidizing optimization.