He was born in Sundridge, Ontario.
As property of the Montreal Canadiens, McCreary spent a seven years in the minor league system only promoted for a single playoff game in 1962 and 9 games during the 1964–65 season.
He became an NHL regular with the Pittsburgh Penguins following the 1967 NHL Expansion. In 1972, he was claimed by the Atlanta Flames in the expansion draft and was designated the team captain. McCreary retired following the 1974–75 season following 532 NHL games. He recorded a total of 131 goals and 112 assists for 243 points.
His brother, Bill McCreary Sr., was also an NHL left winger.
McCreary joined the NHL Alumni Association and was the Association's chairman. He died after a long bout with cancer on December 9, 2003, aged 63.