Brown began his career as a trainee with Bristol City. On his City debut, as a second-half substitute for Alex Meechan in the League Cup defeat away to Nottingham Forest on 15 September 1999 he became their youngest ever player, aged 16 years and 71 days. Brown's league debut came a month later, on 17 October 1999 when he came on as a late substitute for Tony Thorpe in a goalless draw at home to local rivals Bristol Rovers. He made one further league appearance and two in the Football League Trophy, all as substitute, that season.
Unable to establish himself in the first team, Brown joined Torquay United on loan on 27 September 2002, playing three times before returning to Ashton Gate. In January 2003, Brown joined Cheltenham Town on loan until the end of the season, playing regularly as Cheltenham narrowly failed to avoid relegation back to the Third Division.
Brown played twice for Bristol City the following season before released in May 2004. He subsequently joined Conference side Forest Green Rovers, but appeared only as a substitute before joining Tamworth on 25 September 2004. His stay at Tamworth was not a long one, joining Northern Irish side Cliftonville on trial in November 2004.
In March 2005, Brown returned to the Football League, joining Yeovil Town, but played just twice before being released at the end of the season.
Brown joined Weston-super-Mare at the start of the 2005-06 season and was top scorer that season. He was leading scorer again for Weston when he left on 8 March 2007 to join Conference South rivals Salisbury City.
In the 2008 close season Brown was transfer listed by Salisbury City boss Nick Holmes He left to rejoin Weston-super-Mare in July 2008.
During the 2010 January transfer window he joined big spending Southern Premier League team, Truro City. He made his debut against Bashley United. He scored his first goal for Truro City, against Leamington in a 2-2 draw.
His older brother Aaron is also a professional footballer.