The game-ending hit was a roller through the left side of the infield off right-hander Eddie Bonine on a full count.
"I was just trying to take what I could get," said Kottaras, a left-handed hitter. "They were staying away from me the whole at-bat and I just tried hitting the other way. I knew there was a little space over there. I'm normally a pull hitter in general, but I stuck with it and tried to hit the ball on the ground."
Kottaras, who was the designated hitter, is battling with Brett Hayes for the backup catcher spot behind Salvador Perez.
"He's one of those guys that never has a panic at-bat," manager Ned Yost said. "He always stays within himself, he always knows what he wants to do, he has a great eye at the plate and he gives you a professional at-bat every time he steps in that box."
Paul Goldschmidt drove in four runs with three hits, including two doubles, and a sacrifice fly for the D-backs. The 3-for-3 afternoon raised his average to .412 (21-for-51) with 10 RBIs. Aaron Hill went 2-for-3 and reached base four times, scoring three runs.
Miguel Montero contributed a two-run homer, his first of the spring, in the D-backs' five-run seventh inning against reliever Tim Collins. Alfredo Marte's solo homer off J.C. Gutierrez pulled the D-backs even, 10-10, in the eighth.
The Royals are 20-6-1; the D-backs are 13-14-2.
D-backs starter Randall Delgado, competing for a rotation spot, left the game trailing, 6-4, after taking a line drive off his back. Jeff Francoeur's shot ricocheted high off Delgado's back and to first baseman Goldschmidt for the last out of the Royals' four-run fifth. Delgado appeared to be OK.
Delgado was tagged for three home runs, solo shots by Alex Gordon and Billy Butler in the first inning and a two-run blow by Elliot Johnson in the fifth. The homer was Gordon's fourth, matching Mike Moustakas for the team lead.
"I don't blame too much [on] the pitches, they were just putting good swings on them," Delgado said. "I can't control that."
Delgado walked three men in the fifth inning, all of whom came around to score.
"I respect those guys, so it was hard," Delgado said. "I was trying to pitch careful, but I ended up walking them. They are good hitters."
Ervin Santana, designated as the Royals' No. 2 starter, went six innings and gave up four runs (two earned) on seven hits.
Both runs in the D-backs' fifth were unearned. Third baseman Moustakas made a wild throw on Hill, immediately followed by a high fly by Eric Chavez that center fielder Lorenzo Cain lost in the sun. It fell for a triple, and Chavez scored on Goldschmidt's sacrifice fly for a 4-2 lead.
Up next for D-backs: Wade Miley will return to the mound in a Cactus League game Sunday for the first time since March 7, when he first experienced some bicep discomfort. Even though the lefty has only thrown four official innings in Spring Training so far, he did appear in an intrasquad game on March 18. If all goes well with his next two outings in camp, Miley will pitch the third game of the regular season against the Cardinals on April 3. On Sunday, Miley will go against the Mariners at Salt River Fields at 1:10 p.m. MST with Seattle sending former Arizona pitcher Joe Saunders to the mound.