Greer was born in Glasgow and after a single season with Port Glasgow Juniors, began his professional career with Clyde, where he played in only 33 matches before securing a £250,000 move to English Premiership club Blackburn Rovers. Greer made only appearance for Blackburn in the Football League Cup. Greer had a spell on loan with Stockport County, scoring once versus Wycombe Wanderers before returning to Scotland to play for Scottish Premier League club Kilmarnock. Greer first received international recognition, having been capped for Scotland B versus Poland B in December 2005 and versus Republic of Ireland B in November 2006. In July 2007, Greer signed for Doncaster Rovers after he rejected a new contract offer from Kilmarnock. Greer's first season at Doncaster was blighted by several injuries and he was restricted to only six appearances in the 2007–08 season, though he did manage to score his first goal for the club, against Bournemouth. During the 2008–09 season Greer joined League One club Swindon Town on an initial one-month loan spell, that was later extended for a further two months thanks to a financial contribution from TrustSTFC's Red Army Fund. On his return to Doncaster, Greer was released from his contract on 7 May 2009, after only 12 appearances in two seasons with the club. Following his release from Doncaster, Greer soon agreed a two-year contract with Swindon Town on a free transfer in July 2009, having impressed after his loan spell at the club. After officially joining the club, Greer was announced as the club's captain for the 2009–10 season. On 17 May 2010, Greer was shown a straight red card for a high tackle in the play-off 2nd leg versus Charlton Athletic, that Swindon went on to win on penalties. Greer's sending off meant that he was suspended from the play-off final versus Millwall on 29 May 2010. On 10 July 2010, after weeks of speculation and numerous verbal and written approaches for Greer, it was suggested that he would travel down to Brighton & Hove Albion on the following Monday for a medical to agree a move to the Seagulls for a reported fee of £250,000 on a three-year deal. The deal was delayed until the next day, when Greer completed his move to the Seagulls. On 4 August 2010, it was also revealed that Brighton manager Gus Poyet had given Greer the club captaincy for the 2010–11 season. Greer made his Brighton debut in the second game of the season on 14 August 2010 versus Rochdale after serving a two-match ban but was sent off after 51 minutes for violent conduct in a 2–2 draw. One of Rochdale's goals came from a penalty after Greer's red card incident. Greer then helped guide Brighton to winning the League One title and promotion to the Championship that season and stayed as on as club captain for the 2011–12 season. Greer scored his first Seagulls goal in a 2–0 win versus Barnsley in October 2011. In January 2012, Greer received another straight red card for violent conduct in Brighton's 3–0 win versus Southampton, his sending off arriving only three minutes before the end of the match. At the end of that season, Greer was subject to a bid from Barnsley, that was rejected and Poyet later stated that he wasn't up for sale. Greer was released by Brighton at the end of the 2015–16 season. Greer then signed a one-year contract with Blackburn Rovers. and his league debut was on 6 August 2016 versus Norwich City at Ewood Park. Greer was released by Rovers at the end of the 2016–17 season, during which the Ewood Park club were relegated to League One. Greer returned to East Ayrshire to rejoin Kilmarnock in July 2017 for the 2017–18 season. He made his last appearance for Kilmarnock in February 2018, and was released from his contract in August 2018.
International career
On 21 May 2013, Greer was called up to the Scotland squad for the first time for the 2014 World Cup qualifier versus Croatia. Greer received a second call-up on 23 August 2013. Greer made his international debut later that year, becoming the oldest player to make his first appearance for Scotland since Ronnie Simpson in the 1960s. Greer made his first competitive appearance in October 2014, partnering Russell Martin in a UEFA Euro 2016 qualifying match versus Poland. Greer made 11 appearances for Scotland in total, with his last cap coming in June 2016.