Castro's shot put the Astros ahead 3-0 in the second inning and Johnson's blast in the next frame put the contest away for Houston.
Norris (5-1) won his fourth straight start with seven shutout innings, working around five hits and three walks while striking out eight.
Cubs starter Matt Garza (2-2) was pounded for seven runs on five hits in a three-inning effort.
Blake Lalli drove in a pair of runs for Chicago, which fell for the seventh straight time.
Campus cop fatally shoots Texas student during traffic stop
Police: Sword-wielding man demanded free tacos