After a college career at UCLA, Barnes was a second round draft choice of the Memphis Grizzlies in the 2002 NBA Draft. He has played for the Los Angeles Clippers, the Sacramento Kings, and the New York Knicks averaging 4.1 points per game. He was traded halfway through the 2004-05 season to the Philadelphia 76ers but never suited up for a game with them. He signed a free agency contract with the New York Knicks in the 2005 NBA offseason, after spending the second half of the previous season with the 76ers due to a trade that sent both Chris Webber and himself from the Kings to the 76ers, in exchange for Kenny Thomas, Corliss Williamson and Brian Skinner. He was waived by the Knicks during the 2005-06 season after playing six games. After being waived by New York, he was claimed by the 76ers to serve his second stint in Philadelphia.