Porter was a top defensive catcher with a strong arm and was regarded a good handler of pitchers. He hit as many as 20 home runs, and his low batting averages were usually balanced by his bases on balls.
Porter took over regular catching duties at Milwaukee in his first full season, 1973, and hit 16 homers. He was traded to Kansas City in 1977, and replaced the popular Buck Martinez. Two years later, he had a career year, hitting .291 with a league-leading 121 walks. He hit 20 homers and matched Mickey Cochrane as the second catcher to amass over 100 runs, RBI, and walks in a single season.
In 1981 he rejoined former Royals manager Whitey Herzog in St. Louis and publicly stated that he was a recovered alcoholic. Although not as productive offensively with the Cardinals as with the Royals, Porter dominated postseason play in 1982. He hit .556 in the LCS as the Cardinals swept the Braves, and his key hits and perfect defense were central to the Cardinals World Series victory over the Brewers.