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.
Boston schools pull out free condoms over wrapping complaints
NBC reportedly holds celebs hostage to Jimmy Fallon's show