Chang had been designated for assignment last week.
Once a promising prospect for Cleveland, the 26-year-old Chang played in just four games for the Guardians this season and struck out seven times in 10 at-bats. He also missed time after being placed on the COVID-19 list.
Chang batted .228 with nine homers and 39 RBIs in 89 games for Cleveland in 2021. His strong finish -- seven homers and 25 RBIs -- in the final three months put him in position to win a utility job this season.
However, Owen Miller's strong spring training pushed Chang aside and now he'll get a fresh start with the Pirates.
Chang batted .208 with 10 homers and 46 RBI in 131 games over four seasons with Cleveland.