Pittsburgh announced the move Wednesday at the baseball winter meetings.
The switch-hitter hit .267 for Colorado last season. He broke his right thumb on June 15 and was done for the season.
The 28-year-old Morales spent his first 10 pro seasons in the Minnesota system. He is a career .289 hitter in 96 games with the Twins and Rockies.