Forster was in the Celtic youth system, but moved to Hibernian in 2010 after he was advised by Celtic that he would be unlikely to earn a professional contract with them.[3][4] Hibs loaned Forster to Berwick Rangers during the second half of the 2011–12 season.[3] Forster and Hibs agreed a one-year contract in May 2012[3] and he was loaned to East Fife for the first part of the 2012–13 season.[5]
Manager Pat Fenlon said that younger players, including Forster, would feature more in the 2013–14 season.[6] Forster made his debut appearance for Hibs in a 2–1 win against Hearts on 12 May 2013.[7] Fenlon praised the way that Forster had dealt with the physical presence that Hearts had in their attacking line.[8] Forster also played in the 2013 Scottish Cup Final defeat by Celtic, replacing injured captain James McPake.[9] He signed a new one-year contract with Hibs in June 2013.[9] Six months later, Forster signed a contract with Hibs that is due to run until 2016.[10][11]
On 12 January 2016, Forster moved on loan to Football League Two side Plymouth Argyle until the end of the season.[12] After returning from Plymouth, Forster signed a two-year contract with Hibernian in July 2016.[13] He helped them win the 2016–17 Scottish Championship and promotion to the Premiership.
In June 2019, Forster signed with Dundee on a two-year deal with an option of a further year.[15] He featured often early on in his first season, but frequent mistakes eventually cost him his place in the team for a while. Upon his return to the first team and forming a back 3 partnership with Christophe Berra and Josh Meekings, Forster quickly became a key player in for Dundee, helping the side to 5 consecutive clean sheets, as well as his first goal for the Dark Blues away to Queen of the South on 22 February 2020.[16] The team's momentum was unfortunately cut short however by the COVID-19 pandemic.[17] Forster would leave the club in April 2021.[18]
In May 2021, Forster signed with Scottish League Two side Kelty Hearts.[19] He would score his first goal for the club in a league match against Stirling Albion, and would score an own goal in the same game.[20] Forster would be on the pitch for Kelty when they were confirmed as League Two champions.[21]
On 7 June 2023, Forster signed for Lowland League club Tranent Juniors.[22] On 22 June, following public backlash after Forster had pleaded guilty to domestic abuse charges involving a former partner,[23] Tranent announced that they had terminated his contract with immediate effect.[24]