Jason Castro and Chris Johnson each hit three-run homers and Norris threw seven scoreless innings to give the Astros an 8-4 victory over the slumping Chicago Cubs.