Originally starting his football career with the Shanghai Shenhua youth team, Cheng Liang would find it difficult to break into the senior team where he was considered too weak and not fast enough to compete in the top tier. Leaving Shanghai Shenhua in 1997, Cheng Liang would instead join second tier club Shanghai Pudong and would eventually start his professional football career in the 1998 league season. After playing for Shanghai Pudong for several seasons he would be part of the squad that won promotion to the top tier. After establishing his club as top tier regulars Cheng would be part of the squad that came runners-up within the 2003 league season and would soon see him transfer back to top tier side Shanghai Shenhua at the beginning of the 2005 league season for 3 million yuan.
Shanghai Shenhua
In the 2005 league season, he would make his debut for Shanghai Shenhua against Qingdao Zhongneng on April 2, 2005 in a 2-0 win. Cheng Liang however found his time limited at left-back due to Sun Xiang being the first choice left back within the team. Cheng Liang would nevertheless still establish himself within the team because of his versatility to also play as a centre-back. From the beginning of the 2009 season, he took the captaincy and on April 16, the club announced that he will also assume the role of assistant manager. His role as an assistant did not last long and when Miroslav Blažević came in to manage the club at the beginning of the 2010 Chinese Super League season he brought his own assistants and during the summer transfer window Cheng was allowed to join Shenzhen Ruby on loan for the rest of the season as a player. When Cheng returned from his loan period he saw his playing time significantly reduced due to injury and his age limiting him to a single game throughout the season against Qingdao Jonoon F.C. on November 3, 2012 in the last league game of the season where Shenhua won 3-0 before he announced his retirement.
International career
Despite already being 32 years old Cheng Liang was to make his international debut against Germany on the 29th May 2009, in an impressive 1-1 friendly that saw him play as a centre-back. He would continue to play as a centre-back for China's following friendly against Saudi Arabia on June 4, 2009 where China lost 4-1. Despite the defeat Cheng Liang has continued to be included in several further squads to add experience towards the team.