After his college days he signed with the Edmonton Eskimos in 1987 serving as the third string quarterback behind Matt Dunigan and Damon Allen and was a member of their Grey Cup winning team that season. With the departure of Dunigan to the BC Lions and injuries to Allen, Ham established himself the their new starting quarterback. He passed for 2840 yards and ran for another 628. In 1989 he won the CFL's Most Outstanding Player Award in leading the Eskimos to a 16-2 record, throwing for 4366 yards on 268 completions out of 517 attempts with 30 touchdowns to 18 interceptions. Plus Ham became the first CFL passer to rush for over 1000 yards with 1005 on 125 carries and with 10 touchdowns. Unfortunately for the Eskimos they lost the division final to the 9-9 Saskatchewan Roughriders, who went on to win the Grey Cup.
In 1990 Ham added another 1000 yard rushing season with 1096 and passed for 4286 yards leading the Eskimos to the Grey Cup. However the team was handily beaten by the Winnipeg Blue Bombers 55-10. The next year Ham ran for 998 yards and passed for 3862. Ham endured an injury plagued season in 1992 but played well enough to pass for 3655 yards and to run for 655. He moved on to the Toronto Argonauts for 1993 and suffered through a 3-15 record. He threw for only 2147 yards and ran for 605, struggling to adapt to the Run & Shoot offense.
With the CFL expanding into the United States, Ham joined the Baltimore team in 1994. He gained his last plus 4000 yard passing season with 4348 and ran for 613 yards. Ham led the team, not yet named the Stallions, to the Grey Cup, where they were defeated by the Lions. Finally, in 1995, Ham led the Stallions to the only Grey Cup win by a US-based team in a 37-20 defeat of the Calgary Stampeders; he won Grey Cup MVP honours for his efforts. In the regular season he passed for only 3357 yards and ran for 610.
With the demise of the US-based teams, the core of the Stallions franchise was transferred to Montreal where they became the third incarnation of the Alouettes. The team's offense was geared to the running attack, especially when Mike Pringle returned from the NFL midway through the 1996 season. Ham would spend two seasons as the clear-cut starting quarterback, but in 1998 he began to share passing duties with Anthony Calvillo and he retired after the 1999 season.
In his career from 1987 to 1999 Ham accumulated 40,534 passing yards which currently ranks seventh all-time. He threw 4943 times with 2670 completions, 164 interceptions and 284 touchdowns. His 8043 rushing yards presently puts him in tenth all time and second among quarterbacks, behind only Damon Allen. He tallied 1059 carries with 62 touchdowns. In 2007 he was inducted into the College Football Hall of Fame and in 2010 into the Canadian Football Hall of Fame.
In 2002, Ham was hired to serve as head coach of the Clark Atlanta Panthers football team. He led the Panthers to records of 2–9 in 2002 and 0–11 in 2003 before he was fired prior to the start of the 2004 season.