NEW YORK -- James Shields settled down after a rocky beginning and pitched seven outstanding innings, leading the Kansas City Royals to a 3-1 victory over the New York Yankee Tuesday night at Yankee Stadium.
Rookie David Lough and Billy Butler hit solo home runs for the Royals, who improved to 5-3 in a 20-game stretch against opponents who were a combined 44 games over .500 before Tuesday. Eric Hosmer added an RBI double in the eighth.
Those home runs backed a sterling effort from Shields, who allowed one of his five hits after the first inning. He held the Yankees hitless in 17 straight plate appearances after Chris Stewart's one-out single in the second inning.
Shields improved to 8-15 against the Yankees and won for just the third time in 14 career starts in New York. He walked two, struck out six and threw 64 of 102 pitches for strikes.
Tim Collins allowed a hit in the eighth but struck out Robinson Cano swinging on a nasty changeup after the Yankees second baseman fouled off four straight fastballs. Greg Holland pitched a perfect ninth for his 22nd save in 24 opportunities.
Lough tied the game by leading off the sixth with a drive into the right-field seats on a 1-1 fastball. Butler put Kansas City ahead with a home run over the left-field wall on a 0-1 fastball leading off the seventh.
CC Sabathia (9-7) went the distance, allowing three runs and seven hits.
Cano drove in the only New York run with a single in the first as the Yankees dropped their third straight following a season-high six-game winning streak and fell to 1-28 when scoring two runs or less.
The only hit Sabathia allowed through five innings was a leadoff single to Miguel Tejada in the third. After the hit, he recorded five of the next nine outs on the ground, including a diving stop by third baseman Luis Cruz for the final out of the fifth.
The Yankees had four singles but only scored once in the first. After Cano's RBI single, they loaded the bases on a single by rookie Zoilo Almonte but Shields struck out Lyle Overbay on a changeup and retired Eduardo Nunez on a warning-track fly ball to center field.
In the third, Shields issued consecutive one-out walks to Cano and Travis Hafner but retired Almonte on a 6-3 double play.
Shields also had defensive help from Lorenzo Cain, who made three nice catches in center field, including a sliding catch on a sinking liner by Nunez for the second out of the fourth.
NOTES: SS Derek Jeter had the day off from his rehab assignment with Class AAA Scranton-Wilkes Barre. He will resume playing Wednesday and the Yankees feel that they need to see how his ankle handles playing consecutive games twice in the field before they can consider activating him. ... 3B Alex Rodriguez appeared in his fifth rehab game and third with Class A Tampa. He went hitless in three at-bats (two strikeouts and a groundout) against Dunedin in a game that was resumed from June 30. ... Former Kansas City OF Jeff Francouer cleared waivers and signed a minor-league contract with the San Francisco Giants. ... Both teams had issues with plate umpire Angel Hernandez's strike zone at times and he pointed to the Yankees bench and appeared to warn hitting coach Kevin Long at one point.