Xu Bo began his football career with Shen Yang Ginde and made his league debut on 11 September 2004 against Chongqing Lifan in a 1-0 defeat. After he made his debut, he was used sparingly as a versatile substitute who could play in numerous defensive positions throughout the rest of the season. The next season saw him settle within the teams midfield and score his first league goal against Inter Shanghai on 17 April 2005 in a 2-1 defeat. For the next several seasons, he was an integral member of the team and was part of the squad that moved to Changsha while the club renamed themselves Changsha Ginde. By the end of the 2010 season, Xu was unfortunately part of the team that was relegated at the end of the campaign. Xu stayed with the club as they eventually moved to Guangzhou and renamed themselves Guangzhou R&F, which seemed to revive the club's fortunes and saw them win promotion at the end of the 2011 season.
On 23 May 2012, Xu received his first call up to the Chinese national team for friendlies against Spain and Vietnam. However, he suffered an injury in the training, ruling him out for one month. His debut for the national team came on 30 January 2013 in an international friendly against Oman, coming on as a substitute for Zhao Peng.
On 1 January 2015, Xu transferred to fellow Chinese Super League side Shijiazhuang Yongchang. He made his debut for Shijiazhuang on 9 March 2015 in a 2–1 away defeat against Guangzhou Evergrande. On 24 June 2015, he scored his first goal for the club in a 1–1 draw against Shandong Luneng.
Statistics accurate as of match played 28 October 2017