Brown was born in Salt Lake City, Utah, and raised in San Antonio, Texas. He played organized basketball at South San Antonio West Campus High School, a school on the south side of San Antonio, where he became the all-time high school scorer in greater San Antonio.
Brown played four seasons at the University of Texas at San Antonio. He is the all-time leading scorer in school history with 1,922 career points. His collegiate averages were 18.3 points, 7.2 rebounds, 2.7 assists and 1.75 steals in 32.0 minutes. In addition to that, Brown was the first player in UTSA school history to record a triple double — a 33-point, 11-rebound, 11-assist performance — which he did on February 17, 2001 against the Louisiana–Monroe Indians. Brown was named Southland Conference Freshman of the Year in 1998–99 and named First Team All-Southland Conference three times. His was the first Roadrunner to have his number retired by UTSA.
Brown was not selected in the 2002 NBA Draft. He was, however, the 6th overall pick in the CBA Draft by the Sioux Falls Skyforce and the 18th overall pick in the USBL Draft by the Kansas Cagerz. He was also drafted 2nd overall by Fayetteville Patriots in 2002 National Basketball Development League Draft.
Brown began his professional career with the Cagerz in 2002. During his rookie year, he averaged 17.3 points, 6.2 rebounds and won the USBL Rookie of the Year.
The following year Brown received an invite to the San Antonio Spurs' training camp. He was cut before the season started but then re-signed in November 2002 for two weeks during which he played in seven games.
Also in November 2002, Brown was drafted with the second overall pick of the then-named National Basketball Development League draft by the Fayetteville Patriots. He played 44 games for the Patriots and was named the 2003 NBDL Most Valuable Player as well as the 2003 NBDL Rookie of the Year. He averaged 16.9 points on 50% shooting, 4.1 rebounds and two assists in 24.7 minutes.
Brown earned a ten-day contract with the Denver Nuggets in April 2003, appearing in three games with two starts.
After playing for the Spurs 2003 Summer League team, Brown signed with the team for the third time. Brown appeared in 58 games for the Spurs in 2003–04, logging major minutes as the season progressed and played a major role in the playoffs. In game six of the Western Conference Semifinals against the Los Angeles Lakers, Brown scored 15 points, 6 rebounds and three assists in a playoff-career-high 28 minutes.
Brown established career highs in all categories in the 2004–05 season while playing for the Spurs. In 67 games played, he averaged 7.4 points and 2.6 rebounds. With Brown, the Spurs won their third NBA Championship in June 2005. In the Finals, Brown saw the most game time in Game 4 with 20 minutes, but the Spurs lost that game to the Detroit Pistons 102-71. Brown scored 8 points on 2 for 8 field goal shooting and 1 for 3 free throw attempts and had three rebounds and two assists.
On September 9, 2005, as a restricted free agent, Brown signed a two-year offer sheet with the Utah Jazz. The Spurs had the right to match the offer sheet but did not do so. During the 2005–2006 season, Brown played in 81 games for the Jazz (starting 14) and he averaged 7.5 points and 2.6 rebounds per game. On February 13, 2006, he scored a career high 25 points in a game against the Los Angeles Lakers.
On July 12, 2006, the Jazz traded Brown, along with Keith McLeod and Andre Owens, to the Golden State Warriors for veteran guard Derek Fisher, but he was waived during training camp.
On December 22, 2006, he signed with the New Orleans Hornets to help fill in gaps left by injuries to the team's major players. Brown played in 58 games for the Hornets (starting 49 of them), and averaged a career-high 11.6 points per game with and 4.3 rebounds. On April 10, 2007, Brown tied his career high by putting up 25 points against the Los Angeles Clippers.
On September 29, 2007, he signed a one-year deal with the Cleveland Cavaliers. Brown played in 78 regular season games as a Cavalier (starting 20). He averaged 7.5 points, 3.4 rebounds and 2.2 assists, scoring a season-high 20 points against the Sacramento Kings on November 9, and was three assists away from a triple-double against the Washington Wizards on February 22, 2008. On April 2, he tied his season-high against the Charlotte Bobcats. He also had 5 rebounds and 8 assist as a starter in that game. Brown scored double digit points on 19 occasions and rebounds twice.
On August 22, 2008, he signed a two-year contract with the New Orleans Hornets.
On January 25, 2010, Devin Brown was traded to the Chicago Bulls for Aaron Gray.
In September 2011, Brown signed with Asseco Prokom in Poland. He was released by Asseco Prokom in October 2011.
2002 USBL Rookie of the Year
2003 NBDL Rookie of the Year
2003 NBDL Most Valuable Player
On April 14, 2007, Brown scored his 2,000th NBA career point in a game against the Houston Rockets.
On April 27, 2007, Brown had his number 14 retired by the Kansas Cagerz of the USBL.
On March 6, 2008, Brown had his 500th NBA career assist in a game against the New York Knicks. On March 21, he scored his 2,500th NBA career point in a game against the Toronto Raptors, grabbing his 1,000th NBA career rebound against the Philadelphia 76ers nine days later.