He played college basketball at Boston College, where he, along with 2007 ACC Player of the Year Jared Dudley, were co-captains. He averaged 11.1 points per game in his sophomore and junior years, and 14.8 in his senior year when Boston College went 21-12.
After going undrafted in the 2007 NBA draft, Marshall signed with Pınar Karşıyaka of the Turkish Basketball League for the 2007–08 season. During his first pro season he averaged 19.47 points and 5.17 rebounds per game.
In June 2008, Marshall signed a one-year deal with Aris Thessaloniki of the Greek Basket League. He got injured in February 2009, and missed 6 weeks. In April 2009 he returned to Turkey and signed with Aliağa Petkim. He played only one game in Turkish League.
For the 2009–10 season, Marshall signed with JDA Dijon Basket of the French League. He played 29 games and averaged 14.7 points and 4.2 rebounds per game.
On November 2, 2010, Marshall was acquired by the Sioux Falls Skyforce of the NBA D-League. He played 48 games and averaged 14.1 points and 3.2 rebounds per game. He left them in April 2010, and returned to Turkey to play with his former team Pınar Karşıyaka.
In June 2011, Marshall signed with his former team JDA Dijon for the 2011–12 season. He played 30 games and averaged 11.7 points and 2.8 rebounds per game.
In July 2012, Marshall returned to Turkey and signed with Erdemirspor for the 2012–13 season. He played 28 games and averaged 14.1 points and 5.9 rebounds per game in Turkish Basketball League.
In July 2013, Marshall signed with his former team Aliağa Petkim. In March 2014, he was forced to leave the team due to the club's bad financial situation. On April 8, 2014, he signed with Al Ahli Dubai.
On June 17, 2014, Marshall signed with Trabzonspor Basketball for the 2014–15 season.
On November 2, 2015, Marshall was acquired by the Westchester Knicks after a successful tryout. On January 15, 2016, his contract was bought out by the Knicks. Two days later, he signed with Telekom Baskets Bonn of Germany for the rest of the 2015–16 Basketball Bundesliga season. On May 8, 2016, he signed with JL Bourg-en-Bresse of the LNB Pro B for the rest of the season.
On July 7, 2016, Marshall signed a one-year deal with Eskişehir Basket of the Turkish Basketball First League.