The Cardinals on Thursday signed first baseman-catcher Josh Phelps to a minor league contract. The 29-year-old hit .306 with six home runs and 31 RBI in 94 games with the Yankees and Pirates last season.