Caruso fires one-hitter; Astros stop Londonderry