Gordon was 3-for-24 coming into the game before hitting his first spring home run. He is still trying to get his timing down after offseason right wrist surgery.
"It's not bad," Gordon said. "I feel like I'm doing pretty good getting ready for the season."
Royals starter Jason Vargas went five innings and gave up five runs. He allowed seven hits, one walk and struck out five. The lefty now has a 9.68 ERA on the spring.
Four of the Rangers' runs came on home runs by Adam Rosales, Leonys Martin, Jake Smolinski and Ryan Rua. Martin had three hits and is hitting .306 for the spring.
Bonilla's short start allowed Jamey Wright to pitch 2 2/3 scoreless innings in long relief. That is his second straight multiple-inning scoreless outing.
Jason Frasor pitched a scoreless inning for the Royals and has a 0.96 ERA for the spring.
Bonilla started for the Rangers because Ross Detwiler did his work in a "B" game on the back fields. He went 6 1/3 innings against Minor League hitters and allowed two runs on eight hits with one walk and six strikeouts.
Up next: The Royals will send out right-hander Jeremy Guthrie, the club's No. 5 starter, against the Padres on Tuesday in Peoria, Ariz., at 9:05 p.m. CT. It will be Guthrie's final Cactus League start. Watch the game on MLB.TV or listen with Gameday Audio.
T.R. Sullivan is a reporter for MLB.com. Read his blog, Postcards from Elysian Fields, and follow him on Twitter @Sullivan_Ranger. This story was not subject to the approval of Major League Baseball or its clubs.