KANSAS CITY, Mo. -- James Shields weaved his way into and out of trouble for six innings as the Kansas City Royals nipped the New York Yankees 2-1 Sunday.

Shields (7-4), who had allowed 17 runs on 26 hits, including seven home runs, in 18 1/3 innings in his previous three starts, held the Yankees to one unearned hit on six hits and two walks over six innings, while striking out eight.

The Yankees had their opportunities, but failed to come up with a clutch hit. They went 1-for-17 with runners in scoring position, stranding seven of nine runners in scoring position.

The only run off Shields came in the sixth, when third baseman Yangervis Solarte doubled with one out, took third on a passed ball and scored on right fielder Ichiro Suzuki's ground out.

The Royals' bullpen of right-handers Aaron Crow, Wade Davis and Greg Holland held the Yankees scoreless the final three innings. Holland pitched around a leadoff single to Suzuki and a wild pitch to convert his 18th save in 19 chances.

Right-hander Hiroki Kuroda (4-4) was the hard-luck loser, giving up two runs on five hits over seven innings.

The Yankees loaded the bases with none out in the second, but came away empty. Solarte and Suzuki opened the inning with single and second baseman Brian Roberts walked.

Shields got out of his mess by striking out first baseman Kelly Johnson, inducing left fielder Brett Gardner to hit a roller to first baseman Eric Hosmer, who threw out Solarte at the plate. Shields struck out shortstop Derek Jeter to end the inning.

After Kuroda retired the first two hitters in the bottom of the second, the Royals reeled off four consecutive hits to score two runs. Center fielder Lorenzo Cain doubled home the first run, while he scored on third baseman Mike Moustakas' single.

Center fielder Jacoby Ellsbury led off the third with a double, extending his hitting streak to a Yankees' season high of 13 games, but was stranded at third base.

Roberts doubled down the right field line in fourth and the Royals' ball boy misguidedly picked up and handed to a fan in the front row, but was left stranded at third.

NOTES: 1B Mark Teixeira, who missed May 26-28 and June 1-2 with right wrist inflammation, was not in the Yankees lineup. Manager Joe Girardi said he was being proactive with Teixeira, just giving him an off day and he would play Monday. ... Yankees RHP Shawn Kelley, who threw 19 pitches in a minor league rehab Saturday for Double-A Trenton, will pitch in another minor league game Monday. He is on the disabled list with a lumbar spine strain. ... Royals LHP Jason Vargas, who starts the series finale Monday against the Yankees, leads the club with 10 quality starts. ... Royals RF Nori Aoki leads the American League with six bunt singles.