Cunningham frequenta il college di North Carolina, approdando al basket professionistico nella stagione 1965-66 con la maglia dei Philadelphia 76ers, franchigia con cui trascorrerà la sua intera carriera NBA, terminata alla fine della stagione 1975-76 e con cui vincerà il titolo NBA 1967.
Nel 1966 Cunningham viene inserito nel quintetto delle migliori matricole della NBA giocando principalmente come sesto uomo, dal 1969 al 1971 viene inserito nel primo quintetto NBA, e nel 1972 viene inserito nel secondo quintetto.
Cunningham fece parte dei Philadelphia 76ers, la cui stella era Wilt Chamberlain, che vinse il titolo nel 1967 contro i San Francisco Warriors.
Nel 1972 cambiò lega e si unì all'ABA firmando con i Carolina Cougars allenati da Larry Brown alla sua prima stagione da allenatore, contribuì a portare la squadra al miglior record della lega e fu nominato MVP ABA della regular season ma ai playoff, dopo aver sconfitto i New York Nets, furono sconfitti in 7 gare dai Kentucky Colonels di Artis Gilmore e Dan Issel, cosa che si sarebbe ripetuta anche la stagione successiva contro i Colonels stavolta in 4 gare.
Nel 1974 tornò in NBA ai 76ers dove giocò sino al termine della sua carriera nel 1976.
Realizzò 14 triple doppie fra NBA e ABA, 47° migliore di sempre.[1]
Terminata la carriera di giocatore, Cunningham intraprese quella di allenatore, vincendo come capo-allenatore dei Philadelphia 76ers il titolo NBA1982-83.
Massimo di rimbalzi in ABA: 24 vs Kentucky Colonels (30 dicembre 1972)
Massimo di assist in NBA: 13 (3 volte)
Massimo di assist in ABA: 17 vs Memphis Tams (18 febbraio 1973)
Massimo di palle rubate in NBA: 5 vs Boston Celtics (7 febbraio 1975)*
Massimo di palle rubate in ABA: 8 vs Dallas Chaparrals (4 dicembre 1972)*
Massimo di stoppate in NBA: 2 vs Chicago Bulls (18 marzo 1975)*
Massimo di stoppate in ABA: 2 vs Virginia Squires (14 novembre 1972)*
(* tenendo conto dei dati ABA al momento disponibili e che le statistiche di queste categorie vennero registrate sistematicamente solo dalla stagione ABA 1973-1974 e NBA 1973-1974)
Massimo di palle rubate in ABA: 3 vs New York Nets (6 aprile 1973)*
Massimo di stoppate in ABA: 2 vs New York Nets (30 marzo 1973)*
(* tenendo conto dei dati ABA al momento disponibili e che le statistiche di queste categorie vennero registrate sistematicamente solo dalla stagione ABA 1973-1974 e NBA 1973-1974)
* - Membri che sono stati inseriti sia in qualità di allenatori, sia in qualità di giocatori. ** - Membri che sono stati inseriti sia in qualità di allenatori, sia in qualità di contributori. *** - Membri che sono stati inseriti sia in qualità di contributori, sia in qualità di giocatori.