A generic control variate method is proposed to price options under stochastic volatility models by Monte Carlo simulations. This method provides a constructive way to select control variates which are martingales in order to reduce the variance of unbiased option price estimators. We apply a singular and regular perturbation analysis to characterize the variance reduced by martingale control variates. This variance analysis is done in the regime where time scales of associated driving volatility processes are well separated. Numerical results for European, Barrier, and American options are presented to illustrate the effectiveness and robustness of this martingale control variate method in regimes where these time scales are not so well separated.