Gao began his professional career with top tier club Wuhan in 1998, before moving to fellow top tier club Beijing Guoanin 1999. It was with Beijing Guoan that Gao first gained the public notice of Chinese football community when he scored the equaliser against Liaoning in the final game of the season to deny them the 1999 Jia-A League title. At Guoan he would win the 2003 Chinese FA Cup with the club and score in the quarter-final and semi-finals of the tournament, despite not appearing in the final itself. After spending eight years in total at Guoan, making 121 appearances for the team and scoring 11 goals he would leave the team.
Towards the end of the 2006 season, Gao expressed his wish to leave the team and seek other options. There were speculations that Gao was going to a team in the Segunda División in Spain, but in December 2006 he was loaned to A-League club New Zealand Knights for a short period. Gao made this debut in the A-League for the Knights on December 3, 2006 against Newcastle Jets, and scored his first A-League goal in his second match against Adelaide United. Following the dissolution of the Knights franchise, Gao moved to Finland and signed with team MyPa, and in doing so became the first Chinese footballer to play in the Veikkausliiga. Gao made his debut against FC Honka as a substitute on April 22, 2007, and made his first start for against TPS Turku on April 26, 2007. On March 18, 2008, Gao signed a one-year contract with New Zealand club Wellington Phoenix, rejoining his former manager from the Knights, Ricki Herbert. However, Gao's contract with the New Zealand club was terminated after a reported disagreement with the front office after just 8 games. Gao was linked with a move to A-League club Perth Glory after training with the club, but was not signed. On July 3, 2009, Gao returned to Beijing and signed a short contract with Beijing Hongdeng but, after just one month with the team, he transferred to Finland again signing with FC KooTeePee. He made his debut for FC KooTeePee on August 16, 2009 against AC Oulu.
Gao returned to Beijing again and joined Beijing Baxy in July 2010. He scored his first goal on the first appearance, in a 3-0 home win against Anhui Jiufang. Gao announced his retirement from professional football due to problems with injuries on 6 March 2011.
Spain
Gao made his return to football in January 2016, signing a half-year contract with Segunda División B side Cornellà. On March 19, 2016, he made his debut for Cornellà in a 2–0 home victory against Espanyol B. He extended his contract with Cornellà for one year in the summer of 2016. In August 2017, he extended his contract again for another year. On 9 January 2019, Gao joined FC Jumilla. On 20 August 2019, Gao signed a six-month deal with SD Ponferradina in Segunda División, due to a sponsorship deal. The following 12 January, he signed another short-term deal with another team from the second division, Extremadura UD. He was controversially given the number 19 shirt that had been retired since the death of José Antonio Reyes the previous June; this error was rectified by the club.