Gray was born in Lewisham, in south London.[2] He began his association with Arsenal as a seven-year-old,[4] and made one substitute for the first team before making a switch across London in July 2000 to join Crystal Palace for a £500,000 fee.[5][6] He is an attacking left winger[4] who can also play as an auxiliary striker,[citation needed] and has learnt full-back duties so he can help out in defence.[7] Gray played a key part in helping them achieve promotion in the 2003–04 season,[8] despite missing the play-off final through suspension.[9] In addition to his successes during that season he spent a two-month spell on loan with Cardiff City.[10] One of Gray's most memorable games for Palace was when he scored in a man-of-the-match performance as Palace surprisingly knocked Liverpool out of the 2002–03 FA Cup at Anfield.[11][4]
Gray's contract expired in June 2004, allowing him to sign for Birmingham City on a free transfer.[8][12] He made 32 Premier League appearances in his first season in the Midlands,[6] and remained a key part of manager Steve Bruce's plans during the 2005–06 season,[12] although an ankle injury kept him out for several weeks towards the end of the campaign,[13] but started only twice as the team returned to the Premier League in 2007 and was released at the end of that season.[14]
He joined Coventry City on 10 July 2007.[15] He signed for Fulham on a season-long loan on 1 September 2008,[16] and despite not playing a single league game for the club, the move was made permanent for an undisclosed fee on 2 February 2009.[17] He made only one substitute appearance for Fulham, and was released at the end of the season.[18]
In July 2009 Gray went on Sheffield United's pre-season tour of Malta as part of a trial with the club,[19] and the following month he had a trial with former club Cardiff City.[20] Gray signed for Barnsley on 15 September, initially on a monthly contract.[21] He was released after two months, during which he made seven appearances in all competitions and started only one Championship game.[22] Gray joined Walsall in February 2010,[23] and was offered a new deal by the club at the end of the season.[24] He scored his first goal of the 2010–11 season in the 2–1 victory over Brentford with a volley from a Darren Byfield cross.[25]
After leaving Walsall when his contract expired, Gray spent two seasons in Cyprus with Nea Salamis Famagusta. He returned to England in 2013, and trained with Walsall before signing a contract with them on 27 September, to run until January of the following year.[26] Gray made his second debut for the club on 12 October, as a 71st-minute substitute for James Baxendale in a 1–1 draw away at Colchester United.[27] He was released when his contract expired.[28]