Cunningham attended the University of Florida in Gainesville, Florida, where he played for coach Urban Meyer's Florida Gators football team from 2006 to 2009. As a freshman in 2006, he played in seven games as a defensive end. He went on to start 13 games at defensive end as a sophomore in 2007, recording 64 tackles, 6.5 sacks, and 12 tackles for a loss. During his 2008 junior season, Cunningham started 13 of 14 games and finished second on the team with six sacks, while also picking up ten tackles for a loss and three forced fumbles. As a senior in 2009, Cunningham started 12 games, and missed two with injuries. He finished with 34 tackles and ranked second on the team with seven sacks, while also finishing fifth in the conference with 12 tackles for a loss. Following his junior and senior seasons in 2008 and 2009, he was a second-team All-Southeastern Conference selection, and he completed his college career with five forced fumbles and 19.5 quarterback sacks—tied for tenth on the Gators' career sacks record list with teammate Carlos Dunlap. During his time as a Gator, the team won two SEC Championship Games (2006, 2008) and two BCS National Championship Games (2007, 2009).
Cunningham was drafted by the New England Patriots in the second round (53rd overall) of the 2010 NFL Draft. He signed a four-year contract on July 24, 2010. Cunningham made his first career start in the third game of his rookie season, surpassing former starter Tully Banta-Cain, and recorded his first career sack in Week 6 against the Baltimore Ravens. Cunningham started 11 of 16 games played as a rookie, finishing with 27 tackles, one sack, and two forced fumbles.
Cunningham struggled through his second season, recording only one tackle on the season. On a defense that was ranked 31st out of 32 teams Cunningham was a regular healthy scratch. Cunningham played mostly special teams and rarely saw action in the defensive line rotation.
On November 26, 2012 Cunningham was suspended for violating the NFL performance enhancing substances policy.