Bahnsen was drafted out of the University of Nebraska by the New York Yankees in the fourth round of the 1965 Major League Baseball Draft. After two seasons in the minor leagues, in which he went 12-9 with a 2.87 earned run average, he received his first call up to the majors in September 1966. In four games with the Yanks, he was 1-1 with a save and 3.52 ERA. He earned an invitation to Spring training camp in 1967, but was assigned to the triple A Syracuse Chiefs.
After arriving at camp late due to an army commitment, Bahnsen was given a second chance at a roster spot in 1968. He made the club, and proceeded to go 17-12 with a team best 2.05 ERA and struck out a career-high 162 batters to be named the American League Rookie of the Year. His finest performance of the season and only shutout came on August 1 against the Boston Red Sox at Fenway Park. He struck out twelve, while allowing only three hits and walking no one.
Bahnsen spent three more seasons with the Yankees, never matching his rookie success. Perhaps the most famous moment of his Yankee career from that point forward was a brawl with the Cleveland Indians Vada Pinson in which he was knocked down with one punch. Following the 1971 season, he was traded to the Chicago White Sox for infielder Rich McKinney.
White Sox manager Chuck Tanner employed a unique strategy with his starting rotation for the 1972 season. Recognizing the talent he had at the top of his rotation, he started Wilbur Wood, Bahnsen or Tom Bradley as much as possible, leaving only 24 starts for the rest of the staff. The strategy worked, as the White Sox finished over .500 for the first time since 1967, and in second place in the American League West. For his part, Bahnsen made 41 starts, and went 21-16 with a 3.60 ERA in his first season with the South Siders.
The next season, Bahnsen made 42 starts, however his record dipped to 18-21 as the White Sox finished the season in fifth place. In one of those 18 wins, a 4-0 shutout over the Cleveland Indians on August 21 at Municipal Stadium, Bahnsen had a no-hitter broken up with two out in the ninth on a single by former teammate Walt Williams.
Bahnsen made another 35 starts for the White Sox in 1974. Along the way, he started another bench-clearing brawl; this time with the Kansas City Royals' John Mayberry. Coincidentally, Pinson was also a member of the Royals, and in the starting line-up that day. He had already made twelve starts in 1975 when he was dealt with Skip Pitlock to the Oakland Athletics for Chet Lemon and Dave Hamilton on June 15. In a little over three seasons in Chicago, Bahnsen made 130 starts, and was 55-58.
After going 6-7 with a 3.24 ERA for the A's in 1975, he was reunited with former White Sox manager Chuck Tanner for 1976. Tanner employed a similar strategy with the A's to that which he had with the White Sox, starting Vida Blue and Mike Torrez as much as possible. Bahnsen only made fourteen starts, seeing most of his work in relief. He went 8-7 with a 3.34 ERA for the season. Early into the 1977 season, he was traded to the Montreal Expos for first baseman Mike Jorgensen.
After making 22 starts for the Expos in 1977, Bahnsen became a full-time reliever in 1978, making just one emergency start. He became a valuable member of the bullpen, collecting seventeen saves over the next four seasons with the Expos, and leading the team in innings pitched out of the bullpen in 1979 (94.1).
The Expos released Bahnsen at the end of Spring training, just as the 1982 season was set to begin. He joined the California Angels shortly afterwards, but was released after seven games with a 4.66 ERA on May 14.
Shortly afterwards, he signed a minor league deal with the Philadelphia Phillies, and went 4-3 with a 4.89 ERA for the triple A Oklahoma City 89ers. He appeared briefly with the Phillies that September, giving up just two earned runs in 13.1 innings pitched. After going 0-3 with a 9.59 ERA for the Pacific Coast League's Portland Beavers in 1983, he retired.
For his career, Bahnsen posted a 146-149 record. Other statistics: 574 games, 327 games started, 73 complete games, 16 shutouts, 90 games finished, 20 saves, 2,529 innings pitched, 2,440 hits allowed, 1,127 runs allowed, 1,013 earned runs allowed, 223 home runs allowed, 924 walks (59 intentional), 1,359 strikeouts, 34 hit batsmen, 89 wild pitches, 10,701 batters faced, three balks and a 3.60 ERA. Bahnsen has a career .117 batting average, and has driven in nineteen runs. His only career home run came on August 19, 1979 against the Atlanta Braves' Tony Brizzolara.
In 1992 Bahnsen played for one season for the Dutch Major League Team Haarlem Nicols, two years before the team declared bankruptcy.
Bahnsen works with the promotions department of MSC Cruises seeking and securing retired major league players to participate in activities on cruise ships such as autograph and story-telling sessions. He also works with 640 AM, a south Florida radio station that broadcasts Yankee games.