`Integrate` seems unhappy only with `n ∈ Integers`. It works well with AbsoluteTiming[Integrate[k^n SphericalBesselJ[l, R*k], {k, 0, ∞}, Assumptions -> {l > 0, R > 0, n ∈ Reals}]] (* {4.00979075897103, ConditionalExpression[ (2^(-1 + n)*Sqrt[Pi]*R^(-1 - n)*Gamma[(1 + l + n)/2])/Gamma[(2 + l - n)/2], n < 1 && l + n > -1]} *) and also with AbsoluteTiming[Integrate[k^n SphericalBesselJ[l, R*k], {k, 0, ∞}, Assumptions -> {l > 0, R > 0, -1 - l < n < 1}]] (* {11.002235487576527, (2^(-1 + n)*Sqrt[Pi]*R^(-1 - n)*Gamma[(1 + l + n)/2])/Gamma[(2 + l - n)/2]} *) Perhaps, the condition `l + n > -1` is the source of the problem, if `n` is assumed an integer and `l` a real. In any case, the following eliminates the problem and, indeed, runs faster. AbsoluteTiming[Integrate[k^n SphericalBesselJ[l, R*k], {k, 0, ∞}, Assumptions -> {l > 0, R > 0, (n | l) ∈ Integers}]] (* {4.107987620241559, ConditionalExpression[ (2^(-1 + n)*Sqrt[Pi]*R^(-1 - n)*Gamma[(1 + l + n)/2])/Gamma[(2 + l - n)/2], n <= 0 && l + n >= 0]} *) Addendum A work-around is to run the same `Integrate` two or three times in succession. I have posted a [question][1] about this strange behavior, in the hope of gaining more insight. [1]: http://mathematica.stackexchange.com/q/102999/1063