Norris, who was limited to three innings in his previous start a week earlier because of tightness in his arm, breezed through his six innings. The only run he allowed came in the fourth, when Josh Wilson led off with a single and scored on Martin Prado's double.
Norris, who threw 73 pitches and didn't walk a batter, will pitch again on three days' rest on Tuesday, when the Astros face the White Sox in an exhibition at Minute Maid Park.
Braves starter Randall Delgado held the Astros to one hit through three scoreless innings before Houston erupted in the fourth.
The first five Astros batters reached to start the inning, with Johnson putting the Astros ahead with a bases-loaded single and Jason Castro following with an RBI single. Another run scored on the play when Braves left fielder Jordan Parraz made a throwing error to the plate, putting the Astros ahead, 4-1.
Astros shortstop Angel Sanchez added a sacrifice fly in the fifth inning.
Delgado worked 4 2/3 innings and gave up six hits and five runs (four earned), and struck out five batters.
Up next: Jordan Lyles, one of three remaining candidates for the final two spots in the rotation, makes his final start of the spring when the Astros play host to the Yankees on Saturday at 12:05 p.m. CT at Osceola County Stadium. Lyles, 21, has allowed 11 earned runs in 15 2/3 innings in four starts in Grapefruit League action. He's competing with Kyle Weiland and Lucas Harrell for the final two spots in the rotation following the release of Livan Hernandez.