Cai Shangyan (, born 25 September 1962) is a Chinese long-distance runner. He competed in the men's marathon at the 1988 Summer Olympics. He is from Qingdao.