KANSAS CITY—Billy Butler and Jose Guillen homered and Zack Greinke survived a five-run eighth inning Wednesday night, leading the Kansas City Royals past the White Sox 7-6.Guillen also made a great catch of Mark Kotsay’s leadoff drive in the ninth against Joakim Soria, banging into the right-field wall and falling to the ground but keeping the ball in his glove.Greinke (4-8) won for the third time in four starts. He sailed into the eighth with a 7-1 lead, but a pinch-hit, bases-loaded triple by Brent Lillibridge keyed a comeback attempt.Soria relieved Greinke to begin the ninth and closed for his 20th save in 22 opportunities.Butler’s 422-foot solo shot in the first stopped Jake Peavy’s scoreless string at 21 2/3 consecutive innings, the longest active streak in the majors.Butler added an RBI single and Guillen hit a three-run shot in a four-run seventh as the Royals took two out of three from the White Sox, who had had won six straight series during a 16-3 surge, has lost three of four since an 11-game winning streak.Omar Vizquel’s one-out triple in the fourth nudged the 21-year veteran past Luis Aparicio for second on all-time among shortstops with 2,675 hits. Alex Rios followed with an RBI single that tied it 1.Peavy (7-6) was charged with three runs on seven hits in six innings, with two walks and five strikeouts. The loss ended a three-game winning personal winning streak for the veteran right-hander.Greinke ran into trouble in the eighth when four straight singles made it 7-2. The triple by Lillibridge and an RBI grounder by Alex Rios trimmed the lead to a run. Greinke gave 10 hits, with no walks and three strikeouts.Butler, raising his lifetime stats against Peavy to 4 for 9 with three home runs, drove a 3-2 pitch over the fence. Alberto Callaspo and Yuniesky Betancourt had RBIs in the sixth inning off Peavy.In the seventh, Butler’s RBI single was followed by Guillen’s 409-foot shot, two days after his career-best 21-game hitting streak had been stopped.
NOTES—KC outfielder David DeJesus, batting a team-best .331 but 0 for 11 against Peavy, got the night off. … Umpire Alfonso Marquez, who left Monday night’s game with shortness of breath and heat stress and was treated at a hospital, worked home plate. Marquez also sat out Tuesday night. … Reliever Erick Threets threw out Callaspo from a sitting position after fielding his hard grounder behind his back. … Greinke became the 12th Royal to pitch 1,000 innings.