Born in Glasgow, Scotland, Forbes began his football career with Motherwell. In the 2007-08 season, Forbes was an unused substitute on 23 April 2008 against Celtic and continued doing so the following season, as he appeared on the bench four more times.
Loan move to Dumbarton
On 24 January 2009, Forbes was loaned out to Dumbarton, until the end of the season. At the club, Forbes was a key man in helping the club win the Scottish Football League Third Division championship. He scored his only goal in a 2–0 win for the Sons against Berwick Rangers on 11 April 2009. He hoped his good performances would earn him a first team place at Motherwell the following season.
Return to Motherwell
Forbes made his first-team debut for Motherwell in the Europa League first qualifying round defeat against Llanelli on 2 July 2009, Jim Gannon's first match in charge. He scored 2 goals in the return leg of their second qualifying round match against KS Flamurtari Vlorë which Motherwell won 8–1 and another in the next qualifying round home match, a 1–3 loss against Steaua Bucharest. After scoring on his debut in the opening game of the season, he carried his good form into the league campaign, scoring five times in the opening 10 games, and was rewarded by being named SPL Young Player of the Month for August. Forbes was also rewarded by extending his contract until 2012. On 10 February 2010, Forbes had a goal ruled offside against his boyhood club, Rangers, which he described as the "goal of his dreams". The game ended in a 1–1 draw. In a match against Hibernian Forbes had the chance to equalise from a penalty kick with three minutes left, but it was saved by Graeme Smith, who had conceded the penalty in the first place. After the match, Forbes said he couldn't cope and move on following the missed penalty. Later in the season, under new manager Craig Brown, Forbes form dipped badly after a couple of months coming on as a sub without scoring. During this time he was often played out of position. In the 2010/11 season, Forbes started the season by scoring a curling free-kick in the Europa League second qualifying round match against Breiðablik in the first leg. Under new manager Stuart McCall, Forbes said he'd been given a second chance to show his talent, and that he was to blame for dropping out of the team. In the final of Scottish Cup, Forbes was an unused substitute, and this continued for the remainder of the matches played. After featuring just seven times for the club Forbes was released at the end of the 2011–12 season.
After being released by Motherwell, Forbes was close to sealing a move to recently relegated Dunfermline Athletic and played as a trialist for former club Dumbarton in a Scottish First Division game against Partick Thistle. His performance earned him a six-month deal with Thistle on 5 September 2012, joining up with former team-mate Steven Lawless; and stating that joining the timing of the move was perfect. He made his debut for the club as a substitute for Aaron Taylor-Sinclair, in a 2–1 win over Cowdenbeath. A month later Forbes scored his first goal for the club, in a 7–0 victory over Airdrie United. His second goal came on 10 November 2012, in a 5–1 win over Dunfermline Athletic; in a match where he also provided an assist for Conrad Balatoni. After seven appearances and two goals Forbes signed a new contract until the end of the season in November 2012. At the end of the season, following the club's promotion to the SPL for the first time in nine years Forbes signed a one-year deal. Upon signing the new contract he said that Thistle had helped him get his career on track and brought back his love for playing football. In the 2013–14 season, Forbes made his first Scottish Premiership appearance since leaving Motherwell in a 0–0 draw against Dundee United on the opening day. Forbes scored his First Premiership goal for Partick Thistle against St Mirren, coming off the bench in a 2–1 comeback victory. Despite this however his playing time was limited.
Dunfermline Athletic
On 31 January 2014, Forbes was released by Partick Thistle and signed for Scottish Second Division side Dunfermline Athletic on the same day. Forbes made an immediate impact by scoring on his debut in a 3–1 win over East Fife.
In a swap deal with Andrew Barrowman, Forbes made the move to Greenock to sign for league rivals Greenock Morton. He signed a one-year extension in May 2015. At the end of his deal, Forbes agreed a two-year extension until summer 2018. Forbes was nominated by his peers for the Championship Player of the Year for 2016–17. He was also selected in the PFA Scotland Team of the Year.
Return to Dumbarton
After leaving Morton Forbes returned to Dumbarton, nine years after his loan spell with the club, in June 2018. His first goal back at the club was an injury time equaliser against Arbroath in August 2018. During the season Forbes was appointed club captain after Andy Dowie retired and scored 13 goals in 43 games - the best goal return of his career.
Forbes is a lifelong Rangers fan and was a season ticket holder, along with his father, during the Advocaat era. He revealed that Barry Ferguson was his favourite player around that time.