Cavanaugh was born in Youngstown, Ohio, and attended Chaney High School. He was a football standout and went on to the University of Pittsburgh after graduating. In 1976, he was the starting quarterback for the undefeated Pittsburgh Panthers and contributed to the team's National Championship 27–3 victory over Georgia in the Sugar Bowl. On that day, Cavanaugh was selected as the Sugar Bowl's Most Valuable Player. Cavanaugh was also named MVP of the 1977 Gator Bowl, throwing four touchdown passes in a 34–3 win over Clemson. In 1977, Cavanaugh threw for 1,844 yards with 15 touchdowns against six interceptions. Cavanaugh threw for the second-most passing yards in Pittsburgh history, only trailing quarterback Ken Lucas's 1,921 yards in 1965.
NFL playing career and beyond
Cavanaugh was selected by the New England Patriots in the second round of the 1978 NFL Draft, but spent much of his career as a backup. His professional playing career included stints with the San Francisco 49ers, Philadelphia Eagles, and New York Giants. Cavanaugh was the backup quarterback in both the 1984 Super Bowl XIX and the 1990 Super Bowl XXV to Joe Montana and Jeff Hostetler, respectively. Cavanaugh retired as a professional player following the 1991 season, appearing in 112 games with 19 starts, completing 305 of 579 passes for 4,332 yards, 28 touchdowns, 30 interceptions and a 71.7 passer rating. Since his retirement, he has served in the following positions: chief recruiter and offensive coach, University of Pittsburgh ; offensive coach, Arizona Cardinals ; offensive coach, San Francisco 49ers ; offensive coordinator, Chicago Bears ; and offensive coordinator, Baltimore Ravens, winning Super Bowl XXXV with the Ravens in 2000. Cavanaugh served as offensive coordinator for his old college team, the University of Pittsburgh Panthers, until 2008 when he accepted a position as an assistant coach and quarterbacks coach with the New York Jets. He would remain with the Jets until 2012. On January 18, 2013, it was announced that Bears head coachMarc Trestman has hired Cavanaugh as the quarterbacks coach, replacing Jeremy Bates. On January 28, 2015, Cavanaugh became the quarterbacks coach for the Washington Redskins. On January 23, 2017, Cavanaugh was promoted to offensive coordinator of the Redskins, replacing Sean McVay, who became the head coach of the Los Angeles Rams. On January 29, 2019, Cavanaugh was demoted to senior offensive assistant of the Redskins.