He broke into the majors with St. Louis in 1955, posting a record, and gradually worked his way into the starting rotation by 1958. He was named to the NL All-Star team in 1957, 1958, and 1960 while with the Cardinals, and allowed only two hits and no runs in innings in the three appearances; the 1957 game was played at Sportsman's Park in St. Louis. In 1960 he led the NL with 282 innings and 38 games started, also winning 18 games, but he missed the first four weeks of the 1961 season after having his jaw broken in a late spring training game by a flying piece of Duke Snider's