We present a semi-numerical algorithm to calculate one-loop virtual corrections to scattering amplitudes. The divergences of the loop amplitudes are regulated using dimensional regularization. We treat in detail the case of amplitudes with up to five external legs and massless internal lines, although the method is more generally applicable. Tensor integrals are reduced to generalized scalar integrals, which in turn are reduced to a set of known basis integrals using recursion relations. The reduction algorithm is modified near exceptional configurations to ensure numerical stability. To test the procedure we apply these techniques to one-loop corrections to the Higgs to four quark process for which analytic results have recently become available.