2013–14 season Brown was selected with the 52nd overall pick in the
2013 NBA draft by the Minnesota Timberwolves and subsequently joined the team for the
2013 NBA Summer League. On September 26, 2013, he signed his first professional contract with the Timberwolves. However, he was waived by Timberwolves on October 25, 2013. On November 1, 2013, he was acquired by the
Springfield Armor. On November 20, 2013, he signed with the
Philadelphia 76ers. He made his debut that same day, scoring 5 points with 58 seconds left in the 4th quarter. During his rookie season, he had multiple assignments with the Delaware 87ers. On March 14, 2014, he was waived by the 76ers. On March 16, 2014, he was re-acquired by the Springfield Armor.
2014–15 season On July 29, 2014, he signed with
Reyer Venezia of Italy for the 2014–15 season. On September 5, 2014, his contract was voided by Venezia after he failed physicals. On September 25, 2014, he signed with the
Detroit Pistons. However, he was later waived by the Pistons on October 20, 2014. On November 1, 2014, he was acquired by the
Grand Rapids Drive. On November 15, he made his debut for the Drive in a 112–103 loss to the
Bakersfield Jam, recording 14 points, six rebounds and five assists in 33 minutes. On February 4, 2015, he was named to the Futures All-Star team for the 2015
NBA D-League All-Star Game. On January 28, 2015, he signed a 10-day contract with the
Minnesota Timberwolves. Three days later, in just his third game for the Timberwolves, he was thrown into the starting line-up due to being the only healthy point guard on the team as
Mo Williams and
Zach LaVine were both out injured. He was forced to play all but five seconds of their 90–106 loss to the Cleveland Cavaliers as he recorded 9 assists, 6 rebounds and 1 point. He moved back to the bench the following game on February 2 with the return of
Ricky Rubio from long-term injury. His playing time drastically decreased as he managed just 1:29 minutes of action in the 94–100 loss to the Dallas Mavericks. On February 6, he signed a second 10-day contract with the Timberwolves. On February 19, 2015, he signed with the Timberwolves for the rest of the season. On October 24, 2015, he was waived by the Timberwolves.
2015–16 season On November 12, 2015, Brown was reacquired by the Grand Rapids Drive. Two days later, he made his season debut in a 113–101 win over the
Delaware 87ers, recording 13 points, two rebounds, two assists and three steals in 23 minutes off the bench. On January 8, 2016, Brown signed a 10-day contract with the
Phoenix Suns. He made his debut for the Suns four days later, recording 7 points, 5 assists, 2 rebounds and 1 steal in a 116–97 loss to the
Indiana Pacers. On January 18, he signed a second 10-day contract with the Suns. After his contract expired, the Suns decided to not retain him, making him a free agent. On January 29, he was named in the East All-Star team for the 2016 NBA D-League All-Star Game, earning his second straight All-Star nod. On February 2, he was reacquired by the Grand Rapids Drive. On March 18, 2016, Brown signed a 10-day contract with the
Detroit Pistons. He later signed a second 10-day contract with the Pistons on March 28, and then for the rest of the season on April 13. Brown was waived by the Pistons on October 22, 2016, before playing in a game for them.
2016–17 season On November 4, 2016, Brown signed a deal with Russian team
UNICS Kazan, but his contract was voided on November 15 after failing a physical. On December 8, 2016, he signed a contract with the
Zhejiang Golden Bulls of the
Chinese Basketball Association to replace the injured
Cady Lalanne. In 20 games, he averaged 24.0 points, 7.4 rebounds, 5.5 assists, and 2.6 steals per game, and shot 80% from the free throw line. On March 3, 2017, following the conclusion of the
2016–17 CBA season, Brown was reacquired by the
Grand Rapids Drive.
2017–18 season Brown joined the
Detroit Pistons for the 2017
NBA Summer League. He ultimately signed a
two-way contract with the
Toronto Raptors. Under the terms of the deal, split time between the Raptors and their G League affiliate, the
Raptors 905. He also became the first player who previously had NBA experience to sign a two-way contract with an NBA team. He won the
NBA G League Most Valuable Player Award for the season with Raptors 905. Prior to the close of the season, Brown's contract was upgraded to a standard deal.
2018–19 season On July 20, 2018, the Raptors re-signed Brown. In 26 games for the team during the
2018–19 season, Brown averaged 2.1 points per game in 8.2 minutes per game. On January 7, 2019, the Raptors waived Brown. On February 10, 2019,
Guangzhou Loong Lions of the
Chinese Basketball Association was reported to have signed Brown. Brown made his debut for the Loong Lions two days later, scoring 17 points with 2 rebounds and a steal in a 97–93 victory over the
Beijing Ducks. In eight games he averaged 25.2 points, 5.4 rebounds, 4.9 assists, and 2.8 steals per game, and shot 80% from the free throw line. He averaged 11.3 points, 2.9 rebounds, 5.1 assists, and 1.2 steals per game, and shot 84% from the free throw line. He averaged 10.3 points, 2.4 rebounds, 3.8 assists, and 1.3 steals per game, and shot 83% from the free throw line. He left the team in early 2022 due to the
2022 Russian invasion of Ukraine, but returned later to finish the season. He averaged 13.7 points, 3.6 rebounds, 5.6 assists, and 1.3 steals per game, and shot 85% from the free throw line. In 2022–23, he averaged 16.4 points, 2.7 rebounds, 5.7 assists, and 1.0 steals per game, and shot 89% from the free throw line.
Panathinaikos On June 19, 2024, Brown agreed upon a three-year contract, worth €5.4 million (along with a €600,000 buyout compensation for
Maccabi), with the reigning
EuroLeague champions
Panathinaikos. The deal was made official on June 25, 2024. Despite the length of the contract, Brown left the club in 2025 following an underwhelming season in which his performances did not meet expectations. As part of the agreement to terminate the contract early, Panathinaikos paid him a compensation of €700,000 to facilitate the move.
Olimpia Milano On July 12, 2025, Brown signed a multi-year contract with Italian powerhouse
Olimpia Milano. In October 2025, Brown missed the opening two games of the Euroleague season due to a left thigh strain. ==National team career==