Mariners starter Hisashi Iwakuma was perfect through the first three innings, getting eight infield groundouts and one strikeout while holding a 1-0 lead. That came when Carlos Triunfel lined a home run down the left-field line off Santana.
But the Royals broke out for two runs in the fourth inning in their second look at Iwakuma.
"That's kind of how this game works," the Royals' Mike Moustakas said. "The more innings you see guys, the more pitches you see, the more comfortable you feel and the results wind up being there."
Alex Gordon led off the fourth with a sharp ground ball off second baseman Triunfel's glove for a single. He stole second, took third on the catcher's overthrow and scored on Billy Butler's single. Moustakas and Salvador Perez each singled, getting Butler across the plate for a 2-1 lead.
Iwakuma got a double play to end the inning on his 47th and last pitch of the game. In four Cactus League appearances, the 31-year-old has allowed three runs (2.70 ERA) and seven hits in 10 innings. After joining the starting staff in the second half last year, the former Japanese standout figures to open this season as the No. 2 or 3 starter in the Mariners' rotation.
Against Santana, the only balls out of the infield in his four innings were the homer and Raul Ibanez's single.
"Fastball, slider, changeup. Everything was very good," Santana said.
His seven strikeouts were accompanied by five infield outs with no walks.
"He was really good," Moustakas said. "He makes defense really fun when he does something like that."
The Royals snapped a 2-2 tie in the sixth on Elliot Johnson's triple to right field and Xavier Nady's RBI single against Mariners closer Tom Wilhelmsen.
David Lough, trying to win a Royals outfield reserve job, raised his average to .519 (14-for-27) with a run-scoring single that followed Willy Taveras' double in the seventh against left-hander Charlie Furbush.
Up next: Jeremy Guthrie will make what is actually his third start of the Cactus League season at 3:05 p.m. CT on Thursday against the Indians at Goodyear Ballpark. Technically, it's his second start for the Royals because his three innings last Friday night against the Rockies were washed out by rain. In that game, he gave up three runs on three hits. This time he'll probably work four innings or 60 pitches. Shortstop Alcides Escobar might be back in the Royals' lineup after missing two games with a stiff back. Zach McAllister is the Indians' probable starter.