The 33-year-old Garland missed the last 1½ seasons following surgery on his pitching shoulder in 2011 when he was with the Los Angeles Dodgers.
He went 1-0 with a 2.25 ERA in four starts for Seattle this spring. He asked for his release Friday after he was told he wouldn't make the Mariners' starting rotation.
The 6-foot-6 right-hander has a 132-119 career mark with a 4.32 ERA in 12 major league seasons with the White Sox, Angels, Diamondbacks, Dodgers and Padres.
The Rockies announced the move Sunday. They had room on their 40-man roster after Rule 5 pick Danny Rosenbaum cleared waivers and returned to the Washington Nationals.