Mesoscopic modeling of intracellular kinetics is usually performed on the premise that diffusion is so fast that all concentrations are homogenous in space. However, this supposition is not necessarily valid even for small prokaryotic cells, as indicated by recent experimental data on intracellular diffusion constants. When diffusion and spatial heterogeneity are taken into account, stochastic simulation of chemical reactions in single cells is computationally demanding. We present an efficient Monte Carlo algorithm for simulation of mesoscopic reaction-diffusion kinetics in single cells. The total system (e.g. a single prokaryotic cell) is divided into N subvolumes (SVs), chosen so small that the concentrations of reactants in a SV are near-homogeneous in space. The molecules in a SV can either undergo chemical reactions or diffuse to a neighboring SV. The expected time for the next chemical reaction or diffusion event is only recalculated for those SVs that were involved in the previous event. The time for the next event in each SV is ordered in an event queue, which makes the computation time linear in log N, rather than in N.