Down to their last strike when Jarrod Dyson kept the inning alive by lacing a double to right, the Royals knotted the game at 6 on Donald's two-run shot to right off reliever Donn Roach.
Will Venable had knocked in the go-ahead run for the Padres as part of a three-run seventh inning.
Yonder Alonso started the Padres' scoring with a solo home run in the fifth inning, his second of the spring.
The Padres, who trailed 4-0 after four innings, got three runs back in that fifth, as Kyle Blanks smacked a two-run home run. It was Blanks' first home run this spring.
The Padres tied the score at 4 when Everth Cabrera walked with the bases loaded in the seventh inning.
Carlos Peguero belted his first Cactus League home run and Justin Maxwell continued his hot spring for the Royals with three hits, lifting his average to .419. Salvador Perez, Norichika Aoki and Omar Infante all had two hits in the loss.
San Diego starter Ian Kennedy allowed a run in the first inning of his third consecutive start as Infante drilled an RBI double to the left-center-field gap to score Aoki, who singled to start the game.
Kennedy allowed runs in the third, fourth and fifth innings. He allowed four runs on eight hits with two walks and one strikeout. He threw 80 pitches -- 51 for strikes. He's allowed 20 hits in 13 2/3 innings this spring.
"I thought he threw some good, low fastballs today, just off the plate," Padres manager Bud Black said. "He's building is arm strength. The things that we look for in Spring Training with Ian are happening. That's why we do this. He's still working on a couple of things delivery-wise that I think these next couple of starts will give him a great opportunity to get it dialed in."
Kansas City starter Jason Vargas was cruising along, having allowed one hit over four scoreless innings before the Padres got to him for the three runs in the fifth inning. He allowed four hits with three runs, one walk and had four strikeouts.
San Diego reliever Joaquin Benoit tossed a scoreless inning and hasn't allowed a run in six innings over six appearances.
Up next: Tyson Ross will draw the start at 1:05 p.m. PT on Monday when the Padres face the Rockies in Peoria. This will be the fourth start of the spring for Ross, who up until his last outing against the Indians hadn't allowed a run this spring. He's still missing bats, as he has six strikeouts and only four hits allowed in 8 1/3 innings. Look for Ross to use his plus-pitch, the slider, more in this start as he'll likely throw upwards of 70-80 pitches.