By his own admission Kelly was "not real good in basketball" in his junior year at Lanier High but performed better in track and field for which he received a scholarship offer from Lincoln University. After improving at basketball during his senior year he received offers from other colleges but chose to remain with Lincoln as they were the first to contact him. Joining Lincoln in 1963, he started as a reserve for the basketball team until an injury propelled him to the starting line-up where he stayed thereafter. He also continued in track where he excelled in javelin, he finished third in the Kansas Relaysdecathlon in both 1965 and 1966. After leading all scorers with 75 points in three games during the Mid-America Intercollegiate Athletics Association holiday tournament in December 1964, Kelly was chosen in the All-Tournament team. Having helped Lincoln reach the NAIA Division I Tournament, he was an NAIA All-American honorable mention in 1965. In his final collegiate game in March 1967, he scored 12 points before fouling out as Lincoln lost to Missouri State in the Southwest regional final of the NCAA College Division Tournament, having scored as much to help topple Arkansas State in the semifinal. He was an Associated Press Little All-American honorable mention that same year. Kelly finished his collegiate career in 1967, having scored 1,853 points for the Blue Tigers, second only to Harold Robertson in the school's history as of 2016. His 24.1 points per game average remains all-time best for Lincoln. He was inducted into the Lincoln Athletics Hall of Fame in 2013.
Professional career
Kelly was drafted by the St. Louis Hawks in the eighth round of the 1967 NBA draft. He instead signed with the Pittsburgh Pipers of the newly created American Basketball Association in July of that year. During the 1967-68 season he was sent to the Columbus Comets of the North American Basketball League. He was recalled by the Pipers in January 1968, and was part of the team which won the ABA championship that season. He played two full ABA seasons for the team, averaging 13.6 points over 70 games during the 1969-70 season. However, he struggled with a leg injury and left the Condors in October 1970, contemplating retirement. He signed with the Carolina Cougars later that month, playing a few games for them before being released in early November to make space for Dave Newmark. He rejoined the Condors in February 1971 and finished the season with the team. Starting the 1971–72 ABA season with the Pittsburgh team, he was placed on waivers after a few games in November 1971. He was picked up by the Indiana Pacers the same month and played 4 games for the Pacers before being waived in December to make way for Mike Price. Kelly had four or five knee surgeries during his later ABA career and played sparingly. He was later involved in a dispute with the National Basketball Association, the ABA's successor following the 1976 ABA–NBA merger, regarding his playing service. He claimed in 2016 that he was contracted until 1972 and had five years of service in the league which would qualify him for a higher pension under the merger terms. The San Antonio Spurs, the former ABA club administrating player pensions, denied this based on game logs, which Kelly saw as another example of how the NBA "robbed a lot of people of their pension". Following his ABA career, Kelly played for the Pillsbury Kings in the National Amateur Basketball Association. The team, sponsored by the Pillsbury Company who paid player expenses, played in Minneapolis and won the NABA in 1974, finishing runners-up in 1973 and 1975. Kelly was a regular starter on the team and was described by another player as "our best player". In 1975, he played for the Munich Eagles of the European Professional Basketball League during the league's only season.