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.
Beyonce flaunts bikini body, Blue Ivy in vacation pics
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'