For IIR filters, you don't have the impulse response because that is infinite. I mean you can write it as an infinite series, but that isn't going to help much with the convolution.
You have the filter in the form of a recursive difference equation.
So the thing to do is to multiply the Z-transforms. Yes, it's convolution, but you do it in the Z-domain by multiplication.
For example, assume you have a lowpass filter (allpole)
H_{low} = 1/(1-0.9z^{-1})
and a highpass
H_{high} = 1/(1+0.7z^{-1})
If you have the Signal Processing Toolbox, you can cascade these filters easily using dfilt objects.
Hlow = dfilt.df1(1,[1 -0.9]);
Hhigh = dfilt.df1(1,[1 0.7]);
hcas = dfilt.cascade(Hlow,Hhigh);
fvtool(hcas)
But note that is the same as the filter you get by multiplying the two Z-transforms. The product of the 2 Z-transforms is:
H(z) = 1-0.2z^{-1}-0.63z^{-2}
So in MATLAB
A = [1 -0.2 -0.63];
B = 1;
fvtool(B,A)
Compare the magnitude plot above to: