Marshall led Bishop O'Connell to the 2010 Virginia Independent Schools Division I championship as a senior. He also led Bishop O'Connell to the semifinals of the Washington Catholic Athletic Conference. He averaged 15.3 points, nine rebounds and six assists as a senior. Considered a four-star recruit by ESPN.com, Marshall was listed as the No. 7 point guard and the No. 22 player in the nation in 2010.
College career
Freshman season
At the start of his first season at North Carolina, Marshall provided more depth at the point guard position to relieve starting point guard Larry Drew II, as he got more used to the system at North Carolina. However, after a disappointing showing at Georgia Tech in which the Tar Heels lost by twenty points, Roy Williams took the gamble and inserted Marshall into the starting lineup at a win versus Clemson. Soon Drew transferred to UCLA, allowing Marshall to take on the leadership role with poise; as he dished out sixteen assists to three turnovers at a win over Florida State on February 6. Marshall averaged 6.2 points and 6.2 rebounds per game.
Sophomore season
Marshall had an excellent sophomore season in which he set the all time UNC assist record of 351, surpassing former UNC point guard Ed Cota as the all-time leader in assists in a single season in school history. On March 9, 2012, Marshall set another record, the all-time ACC record in assists in a single season with 311, surpassing the previous record set by former Georgia Tech point guard Craig Neal. Marshall fractured his wrist during North Carolina's NCAA tournament win against Creighton University, landing hard after being fouled while driving for a layup. He did not return for the remainder of the season, as Carolina fell to Kansas in the regional finals. Marshall won the 2012 Bob Cousy award, joining past winners Raymond Felton and Ty Lawson as Tar Heels who have won the award. As a sophomore, Marshall averaged 8.1 points and 9.8 assists and shot 52.7 percent from the field.
Professional playing career
2012 NBA draft
On March 29, 2012, Marshall announced that he would enter the 2012 NBA draft out of UNC with three of his teammates: sophomore Harrison Barnes, junior John Henson and senior Tyler Zeller. He was selected with the 13th overall pick in the 2012 NBA draft by the Phoenix Suns.
Phoenix Suns (2012–2013)
On July 16, 2012, Marshall signed a multi-year deal with the Phoenix Suns. He joined the Suns for the 2012 NBA Summer League and in his first game, he had five assists and three steals. In his final Summer League game, Marshall had a double-double with 15 points and 10 assists in a 96-87 victory over the Memphis Grizzlies. On November 4, 2012, Marshall made his first official NBA appearance against the Orlando Magic. He did not record any statistics in that game. He had two assists and one steal in a blowout loss to the defending NBA Finals champion Miami Heat a day later. On November 29, 2012, the Suns assigned Marshall to the Bakersfield Jam of the NBA D-League. In his first game in the D-League, Marshall recorded 21 points, 8 assists and 2 rebounds in a 102-95 victory over the Santa Cruz Warriors. Marshall was recalled by the Suns on December 21, 2012. On February 5, 2013, Marshall recorded a season-high 11 points with 4 assists in a 96-90 victory against the Memphis Grizzlies. On March 9, 2013, Marshall had 9 points, 2 rebounds, and 4 assists in a 107-105 victory over the Houston Rockets. Marshall's first official start in the NBA came on March 27, 2013 against the Utah Jazz. He had 13 assists in that game, his first game to record double-digit assists. In three starts, he totaled 37 assists. On October 25, 2013, Marshall was traded, along with Marcin Gortat, Shannon Brown, and Malcolm Lee, to the Washington Wizards in exchange for Emeka Okafor and a 2014 first-round draft pick. Marshall, Brown, and Lee were all waived by the Wizards three days later.
On December 3, 2013, Marshall was acquired by the Delaware 87ers of the NBA D-League. In his debut with Delaware, Marshall recorded 31 points, 10 assists, 9 rebounds, and 2 steals in a 126-139 loss to the Rio Grande Valley Vipers.
On December 20, 2013, Marshall signed with the Los Angeles Lakers. The injury-ravaged Lakers on January 3, 2014, made Marshall their sixth different player to start at point guard in 2013–14, when he established career highs with 20 points and 15 assists in a 110–99 victory over Utah that snapped a six-game losing streak. It was his fourth career start. In his next game, he recorded a career high 17 assists in a loss to the Denver Nuggets. On July 18, 2014, Marshall was waived by the Lakers.
On July 20, 2014, Marshall was claimed off waivers by the Milwaukee Bucks. On January 17, 2015, he was ruled out for the rest of the 2014–15 season after suffering a torn anterior cruciate ligament in his right knee on January 15. On February 19, 2015, Marshall was traded back to the Phoenix Suns in a three-team deal that also involved the Philadelphia 76ers. He was subsequently waived by the Suns two days later alongside John Salmons.
Philadelphia 76ers (2015–2016)
On September 9, 2015, Marshall signed with the Philadelphia 76ers. On November 11, he was assigned to the Delaware 87ers in order to rehab his torn ACL. On December 4, he was recalled by the 76ers. He made his debut for the 76ers on December 11, recording 5 points and 6 assists as a starter in a loss to the Detroit Pistons. On August 26, 2016, Marshall was traded to the Utah Jazz in exchange for Tibor Pleiß, two 2017 second-round draft picks and cash considerations. He was immediately waived by the Jazz upon being acquired.
On September 21, 2017, Marshall signed a training camp contract with the Milwaukee Bucks. He was waived by the Bucks on October 8, 2017 after appearing in three preseason games. Marshall signed with the Agua Caliente Clippers of the NBA G League. After appearing in three games, Marshall opted to retire from basketball on November 23, 2017.
Marshall resumed his studies at UNC in 2017–18, and graduated after the fall semester in December 2018. He also worked closely with the basketball team, who identified him as a student assistant coach by 2018–19. On October 2, 2019, Tar Heels head coach Roy Williams named Marshall the director of recruiting, a newly created position on his staff.