Cooley was born on March 29, 1873, in Leavenworth, Kansas. He began his Major League career in 1893, playing for Topeka, Kansas, before playing for the St. Louis Browns of the National League (NL). Although the seventh youngest player in the league during his first season, he batted .346, which remained a career-high. Defensively, Cooley was a utility player, starting at multiple positions for the Cardinals. On September 30 of 1893, Cooley recorded six hits against the Boston Beaneaters. He played for St. Louis in 1894, nearly doubling his at bats (206) and games played (54).
Cooley played more regularly in 1895 and averaged 4.2 at bats per game throughout the season. One of the most successful batters on the team, he had the highest batting average at .342 and led the Cardinals in hits, triples, runs scored and total bases. His slugging (.466) and on-base plus slugging (.851) percentages remained the highest of his career. His 20 triples and 264 total bases were both the fifth-highest total in a season for the Cardinals franchise from between the years of 1892 when they entered the NL to 1920, which marked the end of the Dead-ball era. At the end of the year, he had played 133 games, two behind Major League leader and teammate, Joe Quinn. Offensively, Cooley tied for seventh in most hits and finished fourth in triples.
At the beginning of the 1896 season, Cooley continued to play for the Browns. However, after 40 games in which he had a .307 batting average, he was moved to the Philadelphia Phillies in exchange for Joe Sullivan, Tuck Turner, and an unknown sum of money. The Phillies, under manager Billy Nash, finished 62–68, eighth in the NL. Cooley remained with the Phillies in 1897, when he tied with Fred Tenney, George Van Haltren, and Gene DeMontreville for the MLB lead in at-bats. Cooley led his team in runs scored and stolen bases, and finished third, behind Ed Delahanty and Nap Lajoie, in hits. The following two seasons, playing for Philadelphia, he hit .312 in 1898 and .276 in 1899, before he was purchased by the Pittsburgh Pirates for US$1,000 in April 1900. In his only season with the Pirates, Cooley recorded a batting average of .201, the worst of his career. He also compiled 30 runs, 50 hits, and 22 RBI.
After being purchased by the Boston Beaneaters in 1901, Cooley made his minor-league debut for the Syracuse Stars of Syracuse, New York. After recording a team-high in batting average and slugging percentage, Cooley was promoted to the Major League Beaneaters. Next season, under manager Al Buckenberger, Cooley played in 135 games, more than double the previous year for the Beaneaters. He finished the year eighth in the NL in both hits and total bases, and third in doubles.
Cooley remained with the Beaneaters for the following two seasons, hitting .289 in 1903. On June 20, 1904, Cooley hit for the cycle (a single, double, triple, and home run in the same game), becoming the second Beaneater to do so. Cooley finished the 1904 season with six total errors, five in the outfield and one at first base. Cooley's 70 RBIs were eighth most in the NL. After the season, in October 1904, he was selected off the Beaneater's waivers by the Detroit Tigers.