As Henrik has said, Times[] and Power[] automatically combine powers with like bases. The principal reason for fighting against the flow is to format output, I suppose. If it's not and you want to do some algebraic computation with the products of powers separated, it might be good to say what that problem is. It is rather difficult to get Times[] and Power[] to behave differently.
There are two or three approaches to formatting output when another form than the standard Mathematica output is desired, HoldForm[], Defer[], and boxes (with various tools like MakeBoxes[], ToBoxes[], RawBoxes[] and DisplayForm[]). Boxes are the most complicated, and I'll skip that approach. Here are variations on Henrik's approach:
res1 = Exp[a + b] /. Power[E, Plus[a_ + b_]] :> Defer[E^a*E^b]
% // InputForm
(* E^a E^b *)
(* Defer[E^a*E^b] *)
res2 = Exp[a + b] /. Power[E, Plus[a_ + b_]] :> HoldForm[E^a*E^b]
% // InputForm
(* E^a E^b *)
(* HoldForm[E^a*E^b] *)
Note that the HoldForm[] is present even if you copy and paste the output. The Defer[] is part of the result res1, but it is stripped if you copy the output, which is convenient for interacting with a notebook. If you use either variable res1 or res2 in further computation, use First[res1] or First[res2] to remove the head. The powers will combine, of course, but look at what you get if you compute res1^2 or res2 / E^a without First[].