McCahan had begun his professional baseball career in 1942 with the Class B Wilmington Blue Rocks before entering the military. He resumed it in 1946 with the Triple-AToronto Maple Leafs of the International League, winning 11 of 18 decisions with a solid 2.76 earned run average, and earning a late-season callup to the Athletics. In his first MLB game, on September 15, 1946, he shut out the Cleveland Indians 2–0, allowing seven hits and three bases on balls. In his final start of the year, on September 29 at Shibe Park, McCahan went seven innings against the New York Yankees and allowed only two runs, but the game was ended prematurely with the Athletics trailing 2–1 by a city curfew that prohibited night baseball on Sundays in Philadelphia. McCahan was credited with his second big-league complete game, but was tagged with his first loss. McCahan followed his promising 1946 debut with a stellar rookie campaign in as a member of the Athletics' revitalized pitching staff. He won ten games, lost five, and posted ten complete games and an earned run average of 3.32.
No-hit effort
The highlight of McCahan's 1947 season came on September 3. On that afternoon, McCahan no-hit the Washington Senators 3–0 at Shibe Park. With one out in the second inning, Athletics' first basemanFerris Fain, after fielding a routine ground ball, threw wildly to McCahan, covering first base. Stan Spence of the Senators made it all the way to second base, the only blemish on McCahan's otherwise perfect game. McCahan had been on the losing end of the last no-hitter prior to this one, pitched by Cleveland's Don Black on July 10 of that same season; not until Tim Lincecum in 2013 would a pitcher hurl a no-hitter after being on the losing end of the last no-hitter before it. McCahan's no-hitter would also be the last for the Athletics until Catfish Hunter's perfect game in ; by Hunter's time, the franchise had moved to Oakland via Kansas City.
Late career
However, while he was working for an oil company during the 1947–1948 offseason, McCahan injured his shoulder lifting barrels—ruining his season and his long-term MLB career. He won only four of 11 decisions in 1948, and although he threw five more complete games, his earnedrun average ballooned to a poor 5.71. In 1949, he worked in only 12 games, and the Athletics traded him to the Brooklyn Dodgers. He spent three seasons in the Dodgers' farm system, but, apart from an invitation to the Dodgers' 1950 spring training camp, he never saw any action with Brooklyn. In his four-year, 57-game major league career, McCahan compiled a 16–14 won–lost record and a 3.84 earned run average. He allowed 297 hits and 145 bases on balls in 290 innings pitched, with 76 strikeouts. McCahan had 17 complete games and two shutouts among his 40 career starts. McCahan's service with the Double-AFort Worth Cats led him to make his permanent home in that Texas city. He married a Fort Worth woman, worked for General Dynamics Corporation for 26 years, and died there, from cancer, at age 65. He was interred at Fort Worth's Greenwood Memorial Park.