In this paper, we obtain a class of irreducible Virasoro modules by taking tensor products of the irreducible Virasoro modules $\Omega(\lambda,b)$ defined in [LZ], with irreducible highest weight modules $V(\theta,h)$ or with irreducible Virasoro modules Ind$_{\theta}(N)$ defined in [MZ2]. We determine the necessary and sufficient conditions for two such irreducible tensor products to be isomorphic. Then we prove that the tensor product of $\Omega(\lambda,b)$ with a classical Whittaker module is isomorphic to the module $\mathrm{Ind}_{\theta,\lambda}(\mathbb{C_\mathbf{m}})$ defined in [MW]. As a by-product we obtain the necessary and sufficient conditions for the module $\mathrm{Ind}_{\theta, \lambda}(\mathbb{C_\mathbf{m}})$ to be irreducible. We also generalize the module $\mathrm{Ind}_{\theta, \lambda}(\mathbb{C_\mathbf{m}})$ to $\mathrm{Ind}_{\theta,\lambda}(\mathcal{B}^{(n)}_{\mathbf{s}})$ for any non-negative integer $ n$ and use the above results to completely determine when the modules $\mathrm{Ind}_{\theta,\lambda}(\mathcal{B}^{(n)}_{\mathbf{s}})$ are irreducible. The submodules of $\mathrm{Ind}_{\theta,\lambda}(\mathcal{B}^{(n)}_{\mathbf{s}})$ are studied and an open problem in [GLZ] is solved. Feigin-Fuchs' Theorem on singular vectors of Verma modules over the Virasoro algebra is crucial to our proofs in this paper.