Jones hit a two-run shot in the first inning, his third homer in as many games, but the Orioles faced a 3-2 deficit going into the seventh.
A single by Markakis delivered both Roberts and Jones for a 5-3 advantage. Markakis added a run-scoring single during Baltimore's two-run eighth.
Chris Tillman started for the Orioles in his major league debut, having been called up from Class AAA Norfolk earlier in the day. He gave up seven hits and three runs over 4 2/3 innings.
Matt Albers (2-4) worked 2 1/3 innings of relief to get the win. Jim Johnson threw the final two frames for his second save.
Kansas City lost for the 12th time in 15 games. Starter Zack Greinke left with a 3-2 lead after giving up two runs on five hits in six innings. Greinke is winless (0-3) over his last five starts.