The Royals lost a no-hitter, an errorless streak and the lead in the span of two innings, but walked off with a win.

This was some way to complete a sweep.

Salvador Perez's go-ahead RBI single in the eighth came an inning after Jeremy Guthrie's no-hit bid was lost to a scoring decision, and the Royals beat the White Sox for the third day in a row, 5-2, on Sunday.

Guthrie stretched his personal shutout streak to 22 innings but didn't come away with the win. He had a no-no going until Paul Konerko reached on an infield single with two outs in the seventh when first baseman Eric Hosmer couldn't snare Alcides Escobar's deep throw from the hole at short.

The 33-year-old righty came out after allowing back-to-back singles in the eighth and the bullpen gave up two unearned runs charged to him, but Perez's hit in the bottom of the inning keyed a three-run KC rally.

Greg Holland (6-3) got four straight outs for the win, the Royals' ninth in their last 12 games to finish a six-game homestand 5-1.

The White Sox were out-hit 11-3 and finished 3-4 on a seven-game road trip.

Guthrie took a 15-inning shutout streak into the game and it survived seven more frames despite the letdown of Konerko's hit.

The only White Sox baserunner until then had been A.J. Pierzynski, who drew a seven-pitch walk with two outs in the fifth.

Escobar backhanded Konerko's grounder and gunned a one-hopper to first from the outfield grass that bounced in and out of Hosmer's glove as he stretched toward the right field side of the bag.

Konerko would have been out by at least a step with a good throw -- or a fine snare by Hosmer. Still the play was ruled a hit, ending Guthrie's bid for the fifth no-hitter in Royals history, and the seventh in the majors this season.

"It went the way the scorer scored it," said Guthrie. "There was no change in anything I was going to do."

Said Konerko: "I'm the last guy that would have any opinion on it because I just hit and ran. I got there and that was that. I know I'm not used to getting infield hits, so I don't know what happened."

Dayan Viciedo and Ray Olmedo hit back-to-back two-out singles in the eighth to chase Guthrie. Both runners scored when Dewayne Wise's grounder went through Hosmer's legs and to the right field wall, snapping KC's errorless streak at 92 2/3 innings and tying the game.

"That eighth inning early in the year would have been deflating," said Royals manager Ned Yost. "But they came back in the dugout determined that they were going to win the game right there. So that was a tremendous sign."

Billy Butler drew a leadoff walk in the bottom of the eighth off Jesse Crain, who replaced White Sox starter Jose Quintana, and pinch-runner Jarrod Dyson stole second. Perez then poked a single into shallow right-center to score the go-ahead run.

Crain (2-2) walked Mike Moustakas, Donnie Veal walked Hosmer and the Royals scored two more on an error and Lorenzo Cain's single.

Perez also knocked in the first two KC runs with a double in the sixth inning.

Guthrie, who is 2-3 as a Royal, continued his string of good outings. He came into the game off two straight wins that followed 14 appearances -- including 10 starts -- without a victory.

Bret Saberhagen threw KC's fourth and latest no-hitter against the White Sox on Aug. 26, 1991. Steve Busby had the first two and Jim Colborn also twirled one -- all three coming in the 1970s.

Game Notes

Quintana gave up two runs, nine hits and four walks in seven innings ... The Royals start a seven-game road trip Monday at Tampa Bay ... The White Sox begin a six-game homestand Monday against the Yankees.