Hal McRae hit a two-run homer off Chicago's Tom Seaver to support the seven-hit pitching of Bret Saberhagen in Kansas City.
The victory moved the Royals within 1 1/2 games of first-place California in the American League West. The Angels lost to Detroit, 14-8.
Saberhagen, 21, struck out four and did not walk a batter to improve his record to 17-5 with his seventh consecutive victory. He lowered his earned run average to 2.77 and is tied with New York's Ron Guidry for most victories in the American League.
After Seaver walked George Brett with two out in the first inning, McRae hit the next pitch over the center field wall for his 13th homer of the season, putting the Royals in front, 2-0.
Seaver retired the next 11 batters before allowing another hit, a looping opposite-field single to left by Jamie Quirk in the fifth. He pitched out of a bases-loaded jam in the seventh inning but gave up a run in the eighth on Pat Sheridan's sacrifice fly.
Seaver (12-10) finished with a six-hitter. He has not won since his 300th career victory Aug. 4.
Baines hit his 16th homer in the ninth for Chicago's final run.