Born in Portsmouth, Hampshire, Pack became a first year scholar in the 2007–08 season playing regularly for the academy and occasionally for the reserves. The following season he became a regular in the reserve team and remained a key player in the academy side. By the time he signed a one-year professional contract at the end of the 2008–09 season, he had played more than 50 games for Portsmouth's junior teams. He made his debut in the League Cup against Crystal Palace on 24 August 2010 as an extra time substitute, scoring in the subsequent penalty shoot out.
On 31 August 2009, Pack joined Wycombe Wanderers of Football League One on a one-month youth loan. Pack made his debut in the Football League five days later as a second-half substitute in a narrow loss to Brighton & Hove Albion. He made nine appearances in all competitions for Wycombe, where he remained until 26 October when new manager Gary Waddock chose not to extend the loan further.
Dagenham & Redbridge
In January 2010, he went on loan to Dagenham & Redbridge. Marlon was scheduled to return to Portsmouth on 6 April 2010 as his maximum 94-day loan spell would have ended at the club. Furthermore, as the loan window had closed Dagenham were unable to renew the loan deal until the end of the Football League season. He scored his first goal for the Daggers in what turned out to be his final appearance for the team, a 3–1 defeat to Port Vale on 5 April 2010.
Pack signed on a season-long loan for Cheltenham Town on 31 August 2010 making his debut on 4 September in a 3–1 away defeat to Barnet. He was then awarded the player of the month for his performances in November. On 28 December 2010 he scored his first goal for the club in a 4–0 win against Bradford City. 5 days later he scored his second goal in a 2–1 victory against Southend United at Roots Hall. On 23 May 2011 he made the loan move permanent, signing from Portsmouth on a free transfer. He scored his first goal of the 2011/2012 season on 27 August 2011 in a 3–1 win against Crawley Town. In December 2011 he scored three goals, including goals in back-to-back wins against Luton Town and Southend United, and in a 1–0 win against Rotherham United. He scored his 5th goal of the season in a 4–1 home win against Accrington Stanley on 14 April, before helping Cheltenham secure a play-off position by scoring in a 2–1 victory against Plymouth Argyle on 5 May. In the play-off semi finals Cheltenham faced Torquay United and after winning the home leg 2–0, they won the away leg 2–1 thanks to a late 25-yard free-kick scored by Pack to send them to the final at Wembley Stadium.
Bristol City
After a trial, Pack signed a two-year deal with League One club Bristol City on 2 August 2013. Although his Cheltenham contract had expired, a compensation fee, agreed at around £100,000, was payable because he was aged under 24. He was given the number 21 shirt. Pack made his Bristol City debut on the opening day of the season, as a second-half substitute in a 2–2 draw with Bradford City. Pack scored his first goal for the club in a 3–1 win against Coventry City on 18 October 2014. In May 2015 Pack signed a new two-year contract to remain at the club until the summer of 2017. This was followed by the option for a further year being taken up. Pack featured heavily as Bristol City reached the semi finals of the 2017-18 EFL Cup with wins over Premier League opponents Watford FC, Stoke City, Crystal Palace F.C. and Manchester United. Pack scored in the semi-final defeat against Premier League leaders Manchester City. He signed a new three-year contract in July 2018. Pack departed Bristol City with 283 club appearances, 12 goals and 24 assists. He was replaced as captain by Josh Brownhill.
Pack joined Cardiff on 8 August 2019 for an undisclosed fee on a three-year contract, ending his Bristol City captaincy in the process. He made his debut for the side two days later in a 2–1 victory over Luton Town. In August 2019 he suffered a leg injury during a game at Reading, he made his return on 28 September in a 2–2 draw with Hull City. Pack's first goal in a Cardiff shirt came in the following game in a 3–0 win against Queens Park Rangers.