Born in Baltimore, Neal attended Aberdeen High School for three years. At Aberdeen, he was teammates with future George Mason standout, forward-center Jai Lewis. As a junior, Neal led Aberdeen to a 21–4 record and won their state championship, while averaging a triple double per game. For his senior year, he enrolled at Calvert Hall College High School, to play in the Baltimore Catholic League. He played alongside Jack McClinton, who was drafted by the San Antonio Spurs in the 2009 NBA Draft.
College career
As a freshman, Neal was the Atlantic TenRookie of the Year. He led the La Salle Explorersin scoring with an 18.6 average during his two seasons for the Explorers. Before the 2004–05 season, Neal was dismissed from the team due to a rape allegation by a University of New Haven women's basketball player who was working at La Salle camp. Neal was later acquitted after prosecutors failed to convince a jury that the woman was too drunk to consent to sex. Neal sat out the 2004–05 season to transfer to Towson University. He initially joined Towson with no athletic aspirations, but was given a walk-on spot on their basketball team in 2005–06 conditional on the result of his rape case. Neal was activated as soon as he was acquitted, and received a scholarship for his senior year in 2006–07. That year, he returned to high scoring numbers averaging 25.3 points per game, 3.5 assists per game, 4.2 rebounds per game, and he led the Tigers to the 2nd round of the 2007 CAA conference tournament, before losing to Old Dominion University. He became the fourth basketball player in NCAA history to score at least 1,000 points with two different schools.
Eventually, FC Barcelona bought out Neal's Pınar Karşıyaka contract. Neal was signed by FC Barcelona in January 2008. In Barcelona he averaged 2.3 points per game in the Euroleague and 3.3 points per game in the ACB with Barcelona during the 2007–08 season. In June 2008, Neal was signed by the Italian Serie A outfit Benetton Treviso. With Benetton, he was named to the EuroCup BasketballAll-EuroCup Second Team during the 2008–09 season. Neal then joined the Spanish club Unicaja Málaga, where he finished the 2009–10 season, averaging 12.6 points per game in Spanish League play.
San Antonio Spurs (2010–2013)
On July 22, 2010, the San Antonio Spurs of the NBA signed Neal to a three-year deal. In the 2010–11 NBA season, Neal played 80 games and started one and scored 45.1% of his field goal attempts, 41.9% of three-pointers, and 80.8% of free throws; he also averaged 9.8 points per game and 2.5 rebounds per game. On April 27, 2011, during game 5 of the first round of the NBA Playoffs and the Spurs trailing the Memphis Grizzlies 97–94 and the series 3 games to one, Neal hit a three-pointer with 1.7 seconds left in the fourth quarter. The Spurs beat the Grizzlies 110–103 in overtime and forced a sixth game in the series. However, the Spurs lost Game 6 to the Grizzlies 99–91 and were eliminated from the playoffs in the first round. In 22 minutes that game, Neal scored 8 points and made 5 rebounds, one assist, and one steal. On January 2, 2012, the Spurs assigned Neal to the Austin Toros of the NBA Development League as he recovered from an appendectomy. However, he was recalled on the next day without playing any games for the Toros. On December 10, 2012, Neal scored an NBA career-high 29 points to go along with his career-high 7 3-pointers made in a win against the Houston Rockets in overtime. On June 11, 2013, in Game 3 of the 2013 NBA Finals, Neal scored a career playoff high of 24 points on 9 of 17 from the field and 6 of 10 from 3-pointers to help lead the Spurs to a blowout 113–77 victory over the Miami Heat. However, the Spurs lost the series in seven games.
On July 30, 2013, Neal signed with the Milwaukee Bucks.
Charlotte Bobcats/Hornets (2014–2015)
On February 20, 2014, Neal and Luke Ridnour were traded to the Charlotte Bobcats in exchange for Jeff Adrien and Ramon Sessions. In April 2014, Charlotte changed their name to the Hornets. On December 12, 2014, he had his best game since the 2012–13 season with the Spurs when he scored 25 points in the Hornets' 107-113 double overtime loss to the Memphis Grizzlies.
On February 10, 2015, Neal was traded, along with Miami's 2019 second-round draft pick, to the Minnesota Timberwolves in exchange for Mo Williams, Troy Daniels and cash considerations.
On July 9, 2015, Neal signed with the Washington Wizards. During the 2015–16 season, he missed 23 games due to injury, forcing the Wizards to waive him on March 9, 2016.
On December 16, 2016, Neal was acquired by the Westchester Knicks of the NBA Development League. Ten days later, he made his debut with Westchester in a 118–114 loss to the Long Island Nets, recording four points, one rebound and one steal in 13 minutes off the bench.
On January 2, 2017, Neal was traded to the Texas Legends in exchange for a third-round pick. Four days later, he made his debut for the Legends in a 148–122 loss to the Sioux Falls Skyforce, recording 18 points, four rebounds, three assists and one steal in 26 minutes off the bench.
On January 18, 2017, Neal signed a 10-day contract with the Atlanta Hawks. On January 28, 2017, after his 10-day contract expired, he parted ways with the Hawks and re-joined the Legends.
On September 23, 2017, Neal signed with Spanish club Tecnyconta Zaragoza for the 2017–18 ACB season. He was named Player of the Month of November after averaging 22.7 points and four assists in the three matches played during the month. On 24 May 2018, he finished in third place in voting for the Liga ACB MVP of the season.