Royals 4, Orioles 2: Billy Butler and Jeff Francoeur hit home runs and Kansas City's bullpen preserved the lead with 4 1/3 innings of scoreless relief to take two of three from the first-place Orioles and send Baltimore to its fifth loss in seven games.
After losing five straight at Camden Yards, the Royals won two straight to take the series and improve to 14-10 on the road.
Baltimore's Adam Jones went 1-for-4 to extend his hitting streak to 18 games, the longest active streak in the majors. He was in the on-deck circle when Jonathan Broxton struck out Nick Markakis to end the game.
Butler gave the Royals a 1-0 lead with his team-leading 11th home run in the first, but the Orioles answered in the bottom of the inning with an RBI double by Markakis past a diving Mitch Maier in center.
Maier laid down a safety squeeze down the first-base line to score Francoeur and put Kansas City back in front in the second. The Orioles tied it again on Xavier Avery's RBI single to right in the fourth.
Francoeur's blast down the left-field line in the sixth put the Royals ahead for good, and Humberto Quintero added an RBI double later in the inning.
Orioles starter Brian Matusz (4-5) allowed four runs (three earned) on seven hits over six innings.
Royals starter Luke Hochevar lasted only 4 2/3 innings and left after hitting Chris Davis with a pitch in the fifth. Tim Collins (2-0) pitched 1 1/3 perfect innings for the win, and Broxton worked around a two-out error in the ninth for his 10th save.
GAME NOTEBOOK: Kansas City's bullpen compiled eight scoreless innings of relief in winning the last two games of the series. … The Royals won for only the third time in Hochevar's last nine starts. … Jones is hitting .338 (25-for-74) during his hitting streak. … Francoeur went 2-for-4 and extended his hitting streak to seven games. … Baltimore travels to Toronto for a three-game series starting Monday, while Kansas City starts a three-game series at Cleveland to conclude its nine-game road trip.