Norris had a pair of perfect innings in his three innings of work, giving up the two-run single to Descalso in the second that gave the Cardinals a 2-0 lead. He threw 31 of his 48 pitches for strikes.
Cardinals right-hander Joe Kelly, making his first start of the spring, threw two scoreless innings and walked a pair of batters in his first audition for a spot in the starting rotation.
Brandon Barnes led off the third with a homer for the Astros -- his second of the spring -- and Carlos Corporan's RBI single tied the game in the fourth. The Cardinals scored three times in the fifth against Xavier Cedeno, including two RBIs by Kozma and one by Oscar Taveras.
Carter blasted his first home run of the spring, a two-run shot in the fifth, to get the Astros to within a run, 5-4.
"It feels good to finally square up a ball," Carter said. "The last few at-bats, I've been struggling making solid contact."
A three-run shot off the bat of Adron Chambers in the sixth seemingly put the game out of reach until the Astros rallied late.
Up next: Left-hander Dallas Keuchel gets his first start of the spring when the Astros face the Braves at Osceola County Stadium at 12:05 p.m. CT on Saturday. Keuchel has a relief appearance under his belt, but he's competing for a spot in the rotation. Philip Humber will throw in the game, as well, as the Astros try to divvy up starts.
Brian McTaggart is a reporter for MLB.com and writes an MLBlog, Tag's Lines. Follow @brianmctaggart on Twitter. This story was not subject to the approval of Major League Baseball or its clubs.