On December 8, 1977, he was traded to the Kansas City Royals for Mark Littell and Buck Martinez. The following year, he went 8–7 for the Royals while having a 2.88 ERA with 20 saves in 75 innings of work and 58 games pitched. He had 60 strikeouts and 35 walks while allowing fewer hits and runs than the year before. He appeared in three games of the ALCS that year, his first and only time pitching in the postseason. He appeared in the eighth inning of Games 1, 2, and 3, allowing a combined total of three hits and one run, although the Royals lost in four games. The following year, he went 9–4 with a 3.74 ERA while having 11 saves in 65 innings. He allowed more hits and runs (67 and 31, respectively) while having 39 strikeouts and 10 walks. He was granted free agency after the season, and he subsequently signed with the Atlanta Braves.