Zhang Xianyuan was born on the island of Java in the Dutch East Indies. He played right inside forward and right midfielder for a team of local overseas Chinese. At the 1934 Far Eastern Games, he represented the Dutch East Indies, beating defending champions Japan with a 7-1 landslide victory. In this match Zhang Xianyuan scored a hat-trick and was later selected for the Chinese team at the 1936 Berlin Olympics. He did not get a chance to play in Berlin, however, but became the only Chinese football international to represent two countries internationally . After the Olympics, Zhang Xianyuan became a substitute for Li Huitang with the South China Athletic Association.