Distance from Shanghai, China to Chengdu, China. The total distance from Shanghai, China to Chengdu, China is 1,030 miles. This is equivalent to 1 658 kilometers or 895 nautical miles. Your trip begins in Shanghai, China. It ends in Chengdu, China. Your flight direction from Shanghai, China to Chengdu, China is West (-87 degrees from North). The distance calculator helps you figure out how far it is to fly from Shanghai, China to Chengdu, China.