Thornwell attended Lancaster High School in Lancaster, South Carolina for his first 3 years of high school. He then transferred to Oak Hill Academy for his senior year where he averaged 26.8 points per game and averaged 8.6 rebounds and 3.6 assists as well. He led them to a 33-5 record. He was ranked as the 39th best player by ESPN.com and a 4 star recruit by Rivals.com, who also ranked him as the 11th best shooting guard in his class. He also competed in the 2012 Nike Global Challenge playing in 4 games.
College career
After committing to South Carolina on October 2, 2012, Thornwell was second on the SouthCarolina basketball team in scoring with 13.4 ppg and 4.0 rebounds per game. He also averaged 3.0 assists per game. During conference play, he was averaging 15.0 ppg as well. On January 22, 2014, Thornwell had a career high 26 points against the University of Georgia. As a result of his production that season, Thornwell was named a member of the All-SEC Freshman Team. His sophomore year in the 2014–2015 season was not as productive as his freshman season. His junior year, on the other hand, would provide relatively similar results to what he had in his freshman year. However, it would be his senior season where Thornwell would come into his own as a player, as Thornwell would average 21.4 points, 7.2 rebounds, and 2.2 steals in 34.2 minutes of action per game. As a result of his production that season, he was not only a member of the All-SEC First Team, but he was also named the SEC Player of the Year thanks to votes from the coaches of the Southeastern Conference. Furthermore, Thornwell would be the main leader to help the No. 7 seeded South Carolina proceed all the way to the Final Four in the 2017 NCAA Tournament, which was the highest results in South Carolina's history.
Professional career
Los Angeles Clippers (2017–2019)
On June 22, 2017, Thornwell was selected with the 48th pick in the 2017 NBA draft by the Milwaukee Bucks, but his draft rights were then traded to the Los Angeles Clippers. Thornwell signed with the Clippers on July 26.
On August 4, 2019, Thornwell signed with the Cleveland Cavaliers and played in three preseason games before he was waived on October 16. On October 26, 2019, the Canton Charge traded Thornwell to the Rio Grande Valley Vipers for a first round G League pick in 2020. Thornwell averaged 9.2 points, 5.2 rebounds and 4.6 assists per game on 42.9 percent shooting in the 2019-20 season.
New Orleans Pelicans
On July 6, 2020, Thornwell was signed by the New Orleans Pelicans as a substitute player for the remainder of the 2019-20 season.