Jeremy Guthrie remained unbeaten and helped the Royals avoid a three-game sweep at the hands of the Orioles.
The fourth-inning home runs brought Kansas City back from an early 1-0 deficit and Mike Moustakas added a solo blast for the Royals in the seventh. An infield single by Salvador Perez brought home the final Kansas City run in the eighth.
Guthrie (5-0) allowed two runs on seven hits in six innings of work. One of Baltimore's runs came on the 10th homer of the year by Chris Davis.
Freddy Garcia (0-1) gave up four runs on five hits in six innings to take the loss.
Lorenzo Cain reached on a one-out, infield single in the fourth and Gordon followed with his home run to right.
Billy Butler then singled and Hosmer delivered a blast to right-center for his first home run of the campaign. Hosmer hit 14 homers last season.
LGBT community has 'bullied the American people': Bachmann
Handler slams Piers Morgan: 'You're a terrible interviewer'