In this paper, we propose a model reduction algorithm for approximation of large-scale linear time-invariant dynamical systems. The method is a two-sided projection combining features of the singular value decomposition (SVD)-based and the Krylov-based model reduction techniques. While the SVD-side of the projection depends on the observability gramian, the Krylov-side is obtained via iterative rational Krylov steps. The reduced model is asymptotically stable, matches certain moments and solves a restricted H2 minimization problem. We present modifications to the proposed approach for employing low-rank gramians in the reduction step and also for reducing discrete-time systems. Several numerical examples from various disciplines verify the effectiveness of the proposed approach. It performs significantly better than the q-cover [60,59] and the least-squares [33] methods that have a similar projection structure to the proposed method. Also, in terms of both the H2 and H∞ error measures, its performance is comparable to or sometimes better than that of balanced truncation. Moreover, the method proves to be robust with respect to the perturbations due to usage of approximate gramians.