He was signed by the Montreal Alouettes on June 1, 2013 and made the team's active roster as the third-string quarterback. He recorded his first professional touchdown pass on August 22, 2013 against the BC Lions with a 3-yard toss to S. J. Green. He scored his first touchdown in that same game with a 6-yard rushing touchdown, and helped lead Montreal to a thrilling 39-38 comeback win for his first career CFL win. He won his first game as a starter September 3, 2013 against the Toronto Argonauts 20-9.
Marsh was released by the Alouettes on April 14, 2016.
On March 9, 2017, Marsh was assigned to the Cleveland Gladiators. Marsh made his first career AFL start on April 16, 2017. After throwing for 228 yards and 4 touchdowns, Marsh was removed from the game. On April 19, 2017, Marsh was placed on injured reserve. On June 21, 2017, Marsh was placed on reassignment. On June 22, 2017, Marsh was assigned to the Gladiators once again.