In November 1947, Foiles was signed by the New York Yankees as an amateur free agent. He spent four years playing in the minor leagues before being selected by the Cincinnati Reds in the 1951 Rule 5 draft. He made his major league debut on April 21, 1953 at the age of 24, starting at catcher for the Redlegs in a 4–3 victory over the St. Louis Cardinals. After playing only five games with Cincinnati, his contract was purchased by the Cleveland Indians on May 13, 1953. He appeared in seven games with the Indians before the team sent him back to the minor leagues. In 1954, Foiles posted a.332 batting average along with 17 home runs and 59 runs batted in while playing for the Indianapolis Indians of the American Association. His performance earned him a promotion back to the major leagues in 1955 where he posted a.261 batting average in 62 games while playing as a backup to the Indians All-Star catcher, Jim Hegan. He also demonstrated his strong throwing arm with a 59% caught stealing percentage, above the 47% league average for catchers. The Indians entered the final week of the 1955 season in first place, but then faltered to lose four of their last five games to finish the season in second place, three games behind the New York Yankees. On May 15, 1956, Foiles was traded by the Cleveland Indians to the Pittsburgh Pirates for Preston Ward. He had his most productive seasons as a player for the Pirates, appearing in over 100 games in 1957 and 1958. He posted career-highs in 1957 with 76 hits, a.270 batting average with 9 home runs and 36 runs batted in. He was recognized as one of the top catchers in the National League when he was selected as a reserve in the 1957 All-Star Game. In the All-Star game, Foiles appeared in the ninth inning as a pinch hitter, hitting a single off Billy Pierce and then scoring a run to help the National League team rally—only to fall short in a 6–5 defeat. When his hitting performance declined in 1959, Foiles was replaced by Smoky Burgess as Pittsburgh's regular catcher. From 1960 to 1964 Foiles was traded several times, as his defensive skills made him valuable as a backup catcher. In 1960, he appeared in 6 games for the Kansas City Athletics then, was traded back to the Cleveland Indians where he played in 24 games before ending the season as a member of the Detroit Tigers. On November 28, 1960, he was drafted by the Baltimore Orioles from the Tigers in the 1960 Rule 5 draft. After one season with the Orioles, he returned to play for the Cincinnati Reds in 1962. He was signed as a free agent by the Los Angeles Angels and played for two more seasons before playing in his final major league game on September 24, 1964 at the age of 35.
Career statistics
In an eleven-year major league career, Foiles played in 608 games, accumulating 353 hits in 1,455 at bats for a.243 career batting average along with 46 home runs, 166 runs batted in and an on-base percentage of.321. He ended his career with a.986 fielding percentage. In, Foiles led National League catchers with a 50% caught stealing percentage.. Foiles may have been the only major league catcher to have thrown out Jackie Robinson two times in one game.