Cruz, who began Cactus League play hitless in his first 17 at-bats, connected for a solo home run to right-center field in the third inning, his first of the spring.
Prince Fielder, Ian Desmond and Leody Tavares had doubles for the Rangers. Desmond's double with two outs in the third drove in the Rangers' only run.
Karns, who is battling James Paxton for the No. 5 spot in the Mariners' rotation, didn't have his best command at times but he induced two double-play ground balls. He allowed one run in 4 2/3 innings, walking three and striking out seven.
"Nate hung in there and finished strong, which was really good to see," said Mariners manager Scott Servais. "He was messed up mechanically, and it took him a while to get back in sync. It was two different pitchers out there, the first couple of innings from the last couple of innings. But to his credit, he got his pitches in today and he'll keep heading in the right direction."
Texas second baseman Rougned Odor played for the first time since being scratched from the lineup on March 8 with a tight right oblique muscle. He had not played in a game since March 6. Odor went 0-for-2 on Friday.
"I feel pretty good, nothing hurt, no pain, nothing," Odor said. "I feel 100 percent ready to go."
Up next for the Rangers: The Rangers will play two split-squad games again on Saturday, with right-hander Chi Chi Gonzalez starting against the D-backs in a 3:10 p.m. CT game in Scottsdale, Ariz., that will be broadcast on Gameday Audio while right-hander A.J. Griffin will take the hill against the Royals at 2:00 p.m. CT in San Antonio, Texas. The latter game will air on MLB.TV. Both pitchers are candidates for the fifth spot in the rotation. Keone Kela is expected to follow Gonzalez in Scottsdale, and Cesar Ramos, Tom Wilhelmsen, Alex Claudio and Sam Freeman are down to pitch in San Antonio.
Up next for the Mariners: The Mariners have a pair of split-squad games on Saturday. One team will head to Surprise, Ariz., for a 1:05 p.m. PT game against the Royals. Taijuan Walker will likely throw four innings as he makes his fourth appearance of the spring. Later Saturday, Opening Day starter Felix Hernandez makes his second start of spring in a 7:10 p.m. PT game against the D-backs at the Peoria Sports Complex. Hernandez allowed three runs in 2 1/3 innings his last time out against the Rockies. That game will air live on MLB.TV and Gameday Audio.
Corey Brock is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.