MacAfee grew up in Brockton, Massachusetts and was a star as a high school player at Brockton High School. He emerged as a star as a sophomore, and as a junior, he led the Brockton Boxers to the first Massachusetts high school scholastic "Super Bowl"—the state championship game, which Brockton won. After the season MacAfee was selected as a First-team All-American. In his senior season, he caught 10 touchdown passes as his school went through a second straight undefeated season, scoring 360 points and allowing only 21 and again heading to the scholastic "Super Bowl." In that game, MacAfee caught four passes for 111 yards in a 41-0 win to seal a second consecutive state title. Again, MacAfee was an All-American selection. MacAfee finished his career with 23 touchdown receptions. In his four years at Brockton High School, the team was 33-3-1.
College
MacAfee was a three-time All-American at the University of Notre Dame—a First-team selection in 1975 and a consensus selection in 1976 and 1977. MacAfee was elected to the College Football Hall of Fame in 1997. In 1977, he also was Academic All-America, won the Walter Camp Player of the Year Award and was third in voting for the Heisman Trophy. That year, he caught 54 passes for 797 yards and six touchdowns. In his time Notre Dame had a 38-9 record and was the National Champion in 1977, with Joe Montana quarterbacking the Irish team. In his collegiate career, he caught 128 career passes for 1,759 yards and 15 TDs, ranking third on Notre Dame career receiving chart. He was a participant in Hula Bowl and Japan Bowl after his senior season.
NFL
MacAfee played with the San Francisco 49ers in 1978-79 after being drafted seventh overall in the first round of the 1978 NFL Draft. He was a starter in his rookie season he caught 22 passes with one going for a touchdown. He was a starter in his second season, 1979 and caught 24 passes for 4 touchdowns. In 1980 MacAfee was asked to play guard for the 49ers, and not feeling suited to play that position, he left and began dental school. After the season his rights were traded to the Minnesota Vikings, but never played a regular season game with them. He was placed on injured reservein September 1981.