Ross began playing professional baseball in 1933 with Shreveport in the Dixie League. He advanced to Beaumont in the Texas League in 1934 and 1935. He split the 1936 season between Beaumont, Buffalo, and Toronto. He remained with Toronto in 1937.[2]
He made his major league debut with the Tigers on April 19, 1938. He replaced Marv Owen as the Tigers' third baseman.[3] He was the team's starting third baseman for 73 games in 1938. In 632 innings played, he compiled a .946 fielding percentage with 90 putouts, 157 assists, 14 errors, and 15 double plays in 261 chances.[1]
On September 14, 1938, the Brooklyn Dodgers purchased Ross and Ray Hayworth from the Tigers.[4] He played only 10 games for Brooklyn and not until the 1940 season.[1] He appeared in 388 games for the Montreal Royals, mostly at third base, during the 1939, 1940, and 1941 seasons.[2]
At the end of the 1941 season, the Tigers reclaimed Ross in the Rule 5 draft.[5] He was converted into an outfielder in his second stint with the Tigers. He was used principally as a right fielder, starting 31 games at the position in 1942, 31 in 1943, and 35 in 1944.[1]
On April 29, 1945, the Tigers traded Ross and Dutch Meyer to the Cleveland Indians in exchange for Roy Cullenbine.[6] He appeared in 161 games with Cleveland during the 1945 and 1946 seasons, including 138 games as the Indians' starting third baseman. During his time with Cleveland, he compiled a 264 batting average and .340 on-base percentage. He appeared in his last major league game on September 22, 1946.[1]
Ross played for the Hollywood Stars in the Pacific Coast League during the 1947 and 1948 seasons. He appeared in 245 games at third base for the Stars. He concluded his playing career playing for the San Antonio Missions and Greensboro Patriots during the 1949 season.[2]
Ross played in 498 major league games, 261 as a third baseman, 115 as an outfielder, 20 as a shortstop and 7 as a second baseman. Ross had a career batting average of .262 and an on-base percentage of .338. He had 390 career hits, 129 runs scored, 162 RBIs, 166 bases on balls, and 79 extra-base hits.[1]