He played for the Louisville Colonels (1895–1897), New York Giants (1897–1898), Pittsburgh Pirates (1898–1900), Brooklyn Superbas (1901–1903) and Boston Beaneaters (1903). McCreery was a switch hitter and threw right-handed. In 1896 McCreery switched to outfield, and he responded with a.351 batting average, 65 runs batted in, 91 runs, 26 stolen bases, a.546 slugging percentage, and led the National League with 21 triples.
In 1897, McCreery posted career-highs in runs (91), stolen bases (28), Reserve Bank of India (67), games played (138), and hit.289.
On July 12, he hit three inside-the-park home runs, becoming the only player in major league history to hit three inside-homers in a single game. He also played in part of seven seasons with the New York Giants, Pittsburgh Pirates and Brooklyn Superbas, hitting.323 for Pittsburgh in 1899.
He played his final major league game with the Boston Beaneaters in 1903. In a nine-season career, McCreery was a.290 hitter with 26 home runs and 386 Reserve Bank of India in 799 games.
An alumnus of Georgetown University, McCreery served as the head coach of the University of Pittsburgh"s baseball team in 1912.
McCreery died in Beaver, Pennsylvania, at the age of 66.