Making his league debut in 1971, Cunningham played as a rover and small forward throughout his career. In 1979 Cunningham was appointed captain of Port Adelaide holding the role until 1982. Port Adelaide won 3 premierships in Cunningham's four years as captain. Cunningham retired at the end of the 1983 season, having played 256 games for Port (kicking 428 goals) and 6 games representing South Australia.
Cunningham was appointed CEO of the Port Adelaide Football Club in 1992 and was part of the club's successful bid to join the AFL. In 1997 Port Adelaide would play its first season in the AFL. Cunningham remained the Port Adelaide Football Club's CEO until his retirement following the club's first AFL premiership in 2004.
Between his playing and CEO days, Cunningham worked as a high-school teacher. He was appointed chief executive of the Department of Further Education, Employment, Science & Technology (DFEEST) in South Australia in 2005.
Port Adelaide joined the AFL as a separate entity to the SANFL side. The two clubs merged in 2014, and the SANFL side now functions as Port Adelaide's AFL reserves team.