Marsh played college basketball at the Old Dominion University.
In July 2003, he signed with Büyük Kolej of the Turkish Basketball League for the 2003–04 season. In May 2004, he signed with Dukagjini Pejë of the Kosovo Basketball League for the rest of the season.
In August 2004, he signed with Toyota Alvark of the Japan Basketball League for the 2004–05 season. In July 2005, he returned to Turkey and signed with Türk Telekom B.K. for the 2005–06 season.
In November 2006, he signed with Elitzur Ashkelon of the Israeli Basketball Super League for the 2006–07 season.
For the 2007–08 season he signed with Antalya Büyükşehir Belediyesi. In September 2008, he signed with ASK Riga of Latvia. He left them in December 2008, and returned to Antalya Büyükşehir Belediyesi.
In the summer of 2009, he signed with BC Donetsk of Ukraine. He left them in December 2009. In February 2010, he signed with Cedevita Zagreb of Croatia for the rest of the 2009–10 season.
In November 2010, he signed with Crvena zvezda of Serbia for the 2010–11 season. He parted ways with Zvezda in March 2011.
In July 2011, he signed with Hacettepe Üniversitesi. He stayed there till April 2013, when he signed with Gaiteros del Zulia in Venezuela.
On May 10, 2013 he signed with Duhok SC of the Iraqi Division I Basketball League. On May 28, 2013, he signed with Caciques de Humacao. In September he returned to Duhok SC and played 6 games on the 2013 FIBA Asia Champions Cup.
On October 2, 2013, he signed with Maccabi Rishon LeZion of Israel. He was released on November 14, 2013, after playing six games with the club. In January 2014, he signed with Club Atlético Lanús. On February 28, 2014, he signed with Bucaneros de La Guaira of Venezuela for the remainder of the season. On April 4, 2014, he was released by Bucaneros.
On November 28, 2014, Marsh signed with Al Wasl Dubai of United Arab Emirates.