Mean-reverting portfolios with few assets, but sufficient variance, are of great interest for investors in financial markets. Such portfolios are straightforwardly profitable because they include a small number of assets whose prices not only oscillate predictably around a long-term mean but also possess enough volatility. Roughly speaking, sparsity minimizes trading costs, volatility provides arbitrage opportunities, and mean-reversion property equips investors with ideal investment strategies. Finding such appealing portfolios can be formulated as a nonconvex quadratic optimization problem with an additional sparsity constraint. To the best of our knowledge, there is no method in the literature that directly solves this problem with its solution achieving favorable theoretical properties. In this paper, we develop an efficient two-stage algorithm for solving this problem which, in the worst case, provably obtains a stationary point and further, demonstrates numerical efficiency. In the first stage of our algorithm, we apply a tailored penalty decomposition method for finding a stationary point of this nonconvex problem. For a fixed penalty parameter, the block coordinate descent method is utilized to find a stationary point of the associated penalty subproblem. In the second stage, we improve the result from the first stage via a greedy scheme that solves restricted nonconvex quadratically constrained quadratic programs (QCQPs). We show that the optimal value of such a QCQP can be obtained by solving their semidefinite relaxations. Numerical experiments on S&P 500 are conducted to demonstrate the efficiency of the proposed algorithm.