He was hailed by many as one of the best players in baseball early in his career, which featured All-Star Game appearances in 1977 and 1979. In the latter year, Templeton made history as the first switch-hitter to collect 100 hits from each side of the plate, a feat achieved only once more since then. His total of 211 hits led the National League, and with 19 triples, he led the league for a third consecutive season. He led the Cardinals in hits in 1977, 1978, and 1979. He caused some controversy in 1979 when, despite having better numbers than either Dave Concepción or Larry Bowa, two of the National League's premier shortstops at the time, he wasn't selected to start at shortstop for the National League All-Star team. He was named to the team as a reserve, but refused to go. In response, he made his now-infamous quote, "If I ain't startin', I ain't departin'!"
He continued to hit well in 1980 and 1981, but was not popular with Cardinals fans. During an August 26, 1981 home game in St. Louis, Templeton made an obscene gesture to some fans who had allegedly been heckling him after he had failed to run to first on a ground ball. This proved to be too much for the Cardinals' management to accept, and manager Whitey Herzog pulled Templeton off the field, and after the end of the season traded him to the Padres for Ozzie Smith. The trade was welcomed by everyone involved, as Smith was (then) a light-hitting defensive wizard and the Cardinals needed to improve their defense. He was also embroiled in a contract dispute with Padres' management. Templeton, while not as strong afield, was a much better hitter going to a team with a struggling offense.
He was named team captain of the Padres by manager Larry Bowa in 1987, and assumed that role until he was traded to the New York Mets in 1991.