Nicknamed "Soup" because of his last name, Campbell was signed as an amateur free agent pitcher by the Twins and began his career with the Class A minor league Wisconsin Rapids in 1971. In 1972, he moved up to Minnesota's AA level Charlotte affiliate, and in 1973 he started the season with AAA Tacoma and had 10 wins and 5 losses when he was called up to the major leagues in July. Campbell made his Twins debut on July 14, 1973, in relief of Jim Kaat. He pitched one scoreless inning, and allowed one hit to the Cleveland Indians, while striking out two. Used primarily in relief, he posted a record in 1973 of 3 wins and 3 losses in 28 games, with an earned run average of 3.18. In 1974, Campbell pitched in 63 games, all in relief, and compiled an 8-7 record with 19 saves and a 2.62 ERA. In 1975, he started slowly after a spring training arm injury, and split time between relieving and starting. His overall record was 4 wins and 6 losses, with 5 saves and a 3.79 ERA. In 1976, new manager Gene Mauch named Campbell as his closer. Campbell rose to the occasion; his 78 appearances led the league, and his record was 17 wins, 5 losses, 20 saves, and a 3.01 ERA. He finished 7th in the voting for that year's Cy Young award, and 8th in the voting for Most Valuable Player. In 1977, Campbell signed with the Boston Red Sox. He finished with 13 wins, 9 losses, 31 saves, and an ERA of 2.96. He was selected for the AL All-Star team, and won both the AL Fireman of the Year and Rolaids Relief Man of the Year Award. Campbell was the first American league recipient of the Rolaids award, and the first two-time winner. Campbell experienced arm trouble in 1978, and was no longer the dominating closer he had been in 1976 and 1977. He played until 1987, and spent time with the Cubs, Phillies, Cardinals, Tigers, and Expos in addition to the Red Sox, but never posted more than 6 wins or 8 saves in a season. His best year during the latter part of his career was 1983, when he led the National League in appearances with 82.
Later life
After leaving the major leagues, Campbell spent two seasons with the Senior Professional Baseball Association. According to 1987 news articles, Campbell was among those who were swindled by sports agent LaRue Harcourt, and lost approximately $800,000. He remained involved in baseball, and served on the coaching staff of the Milwaukee Brewers in 1999. In retirement, he was a resident of the Chicago, Illinois area. He also coached for the Red Sox organization and was a volunteer coach for youth baseball leagues.