BALTIMORE -- Kansas City second baseman Omar Infante homered and tied a career-high with six RBIs, leading the Royals to a 9-3 victory over the Baltimore Orioles before an announced 38,368 at Camden Yards on Sunday.

With the victory, the Royals took the three-game series and closed out a seven-game road trip with a 3-4 record. Kansas City also improved to 12-0 on the season when scoring at least four runs or more.

Royals starter James Shields (3-2) was stellar, allowing two runs on a season-low three hits with six strikeouts and two walks over seven innings. Infante went 2-for-3, and knocked in runs with a double, his second homer of the season, a fielder's choice and sacrifice fly. Kansas City belted 13 hits off four Baltimore pitchers.

Orioles starter Miguel Gonzalez (1-2) allowed four runs (three earned) on six hits with four strikeouts and one walk over six innings, which tied his longest start of the season. He also got his second quality start in five outings this season.

Nelson Cruz hit his team-leading seventh home run for the Orioles.

The Royals (12-12) opened a 1-0 lead in the first when right fielder Nori Aoki led off the game with a long fly ball that fell out of the glove of Baltimore center fielder Adam Jones. He scored on a fielder's choice by Infante. The Orioles (12-12) fell to 0-7 in games when they commit an error.

Kansas City increased the lead to 2-0 in third when center fielder Jarrod Dyson singled, stole second and eventually scored on a sacrifice fly by Infante.

Meanwhile, Shields was cruising and only ran into trouble in the fourth when his throwing error put runners on first and second with one out. However, he got shortstop J.J. Hardy to ground into a double play to end the threat. At that point, he had allowed just one ball hit out of the infield -- a routine fly ball to left by designated hitter Jemile Weeks.

A two-RBI double by Infante off Gonzalez in the fifth increased the lead to 4-0. Cruz finally answered in the sixth for Baltimore with a towering two-run homer to center that cut the margin in half. However, the Royals pulled away the following inning on a two-homer by Infante and another two-RBI double by left fielder Alex Gordon off Orioles righty Evan Meek.

Kansas City added another run in the ninth on an RBI double by Mike Moustakas off Ryan Webb. The Orioles also scored in the ninth on a wild pitch by Greg Holland.

Notes: Orioles 1B Chris Davis was officially placed on the 15-day disabled list, retroactive to April 26, with a strained left oblique. ... Baltimore RHP Bud Norris will make his scheduled start Wednesday against the Pirates despite dealing with some tightness in his right hamstring. ... Royals SS Alcides Escobar was back in the lineup Sunday after injuring his knee the prior day when Orioles 3B Jonathan Schoop awkwardly slid into second base and landed on him. ... Kansas City played its 15th road contest of the season, tied with the Angels for the most in the American League.