Porter replaced Buck Martinez as the Royals starting catcher. He had the best season of his career in 1979 when, he posted a .291 batting average along with 20 home runs, 112 runs batted in and led the league with 121 walks. He became only the sixth catcher in Major League history to score 100 runs and have 100 runs batted in. The feat had previously been accomplished by Mickey Cochrane, Yogi Berra, Roy Campanella, Johnny Bench, and Carlton Fisk—all in the Baseball Hall of Fame. Only Porter and Cochrane had 100 walks, 100 runs, and 100 RBI in a single season. He ended the 1979 season ranked third in Wins Above Replacement behind Fred Lynn and his Royals teammate George Brett. With the Royals, he was selected to three consecutive American League All-Star teams.