Cao was promoted to Shandong Luneng's first team squad by Felix Magath in June 2017.[3] He made his debut for the club on 21 June 2017, playing the whole match in the 2017 Chinese FA Cup against Tianjin Teda, which Shandong won 1–0.[4] On 9 July 2017, he made his Chinese Super League debut in a 2–0 away win against Tianjin Teda, coming on as a substitute for Jin Jingdao in the 89th minute.[5]
Cao would struggle to gain much more playing time before being dropped to the reserves and then loaned out to third tier club Zibo Cuju on 14 October 2020.[6] He would be loaned out once more to another third tier club in Qingdao Hainiu on 1 July 2021.[7] He would go on to play a vital part as the club won the third tier title and promotion at the end of the 2021 China League Two season.[8] His loan would be extended and he would go on to achieve successive promotions as he helped guide the club to second in the 2022 China League One season and promotion back into the top tier.[9]