Bret Saberhagen, who pitched a perfect game through seven innings, balked home Gorman Thomas with the go-ahead run in the eighth inning as Seattle won in Kansas City.

Saberhagen retired the first 21 Mariners before Thomas led off the eighth by grounding a sharp single to center. Ivan Calderon singled Thomas to second and Dave Henderson sacrificed the runners over. Saberhagen intentionally walked Jim Presley before committing a balk on a 2-0 count while pitching out of the stretch to Ken Phelps.

"I'm usually in trouble in the first inning," said Saberhagen, who did not dispute the balk call. "I get out of the first and I'm already thinking about it (no-hitter). A no-hitter and a perfect game are one in a million, but I would like to have shut them out, too.

"I kind of kicked myself," Saberhagen said. "But it's over and done with. By all means, I was upset. You've got a perfect game going one minute and the next minute, you're out."

Saberhagen (7-4), who had won five straight, walked Phelps before Dan Quisenberry came on to give a run-scoring infield single to Al Cowens.

Second baseman Frank White had made two nice plays to preserve the perfect game. He ranged far to his right to throw out Presley to start the third and leaped high to grab Jack Perconte's liner to start the seventh.

Rookie Bill Swift (2-1) blanked the Royals over eight innings on six hits, alking one and striking out three. George Brett hit a leadoff double in the ninth to knock out Swift in favor of Ed Vande Berg.

Hal McRae hit a fly ball to deep center, advancing Brett. Edwin Nunez, who got his seventh save, relieved Vande Berg. Frank White's grounder scored Brett and Darryl Motley struck out to end the game.