Affleck was drafted in the 2nd round in the 1974 NHL Entry Draft by the California Seals from the University of Denver. He turned pro the following season, and spent the first half of the year with the Seals' Central Hockey Leaguefarm team in Salt Lake, but was dealt to the St. Louis Blues before he ever played a game in California. He finished the season with a 13-game callup to the Blues, recording 2 assists. In 1975–76, Affleck made the Blues' squad full-time and was a huge success as a mobile, puck-moving defender. He played in all 80 of the team's games, recorded 4 goals and 30 points, and was named the team's Rookie of the Year. His 26 assists were the most of any Blues blueliner. Affleck would spend three seasons as a regular in the Blues' lineup. However, by 1977–78 he was struggling, as he slumped to 18 points and a -56 rating on a St. Louis team which finished with just 20 wins and missed the playoffs. In 1978–79, he would lose his spot on the Blues, playing only 26 games and spending most of the season in the Central Hockey League, where he was named the league's top defender. For the 1979–80 season, Affleck was sold to the Vancouver Canucks. However, he again spent most of the season in the CHL, where he was named the league's top defender. He did play in 5 games for the Canucks, recording an assist. He would sign as a free agent with the New York Islanders for the 1980–81 season, but did not see a game for the Islanders, although he was named the CHL's top defender for the second consecutive season, this time playing for the Indianapolis Checkers. Affleck would spend the majority of the next two seasons playing in Switzerland, although he returned to Indianapolis for the close of the CHL season and playoffs both years, helping the team to two championships. He returned to Indianapolis full-time for the 1983–84 season, and was named the league's top defender for the third time along with MVP honours. He also received a one-game callup to the Islanders, five years after his last NHL action. He retired at the conclusion of the season. Affleck finished his NHL career with 14 goals and 80 points, along with 86 penalty minutes, in 280 games.