He started his career with the Scottish club Gretna, and thereafter played for Dundee United, St Johnstone and Heart of Midlothian in the Scottish Premier League. After short spells with St Mirren and Dunfermline Athletic, he returned to England to sign for his home town club, Carlisle, in 2014 and he is Carlisle United's captain.
Born in Penrith, Cumbria, Grainger began his career with Gretna, joining as a schoolboy in the summer of 2002. Grainger made over a dozen appearances before a loan spell with Brechin City in early 2006.
At the start of the 2006–07 season, Grainger became a first-team regular, playing in all but a handful of Gretna's matches. On 27 August 2006, Grainger scored his first goal for the club in a 3–0 win over Queen of the South. On 11 November 2006, Grainger scored his second goal for the club in a 2–1 win over Livingston. Later on in the 2006–07 season, Gretna were promoted from the First Division to the Scottish Premier League. At the start of the 2007–08 season, Grainger became a first-team regular for Gretna's campaign in the Scottish Premier League, making 17 appearances for them before being sold. On 15 December 2007, Grainger made his last appearance for Gretna, in which he scored his third goal (and last in his Gretna career) in a 3–3 draw against Kilmarnock.
Later in the 2007–08 season, Gretna struggled in the SPL and were relegated, before being formally liquidated on 8 August 2008. Four years on, Grainger said that he had no regret leaving Gretna, and departed because of the club's financial crisis.
On 27 December 2007, he agreed terms to conclude his transfer to Dundee United when the transfer window reopened on 1 January 2008. One day after signing for the club, he made his debut in a 4–1 win against his future club Heart of Midlothian. Throughout the 2007–08 season, Grainger became a first-team regular at full back, playing in all but a handful of Dundee United's matches. The following season of 2008–09, Grainger struggled for first-team opportunities after the arrival of Paul Dixon restricted Grainger to just nine starts in the SPL. Grainger described the season as "hell".
At the end of 2008–09 season, newly promoted side St Johnstone made an inquiry for Grainger after boss Craig Levein confirmed there was contact from the Saints. On 15 July 2009, he signed for Scottish Premier League club St Johnstone on a two-year deal. Upon joining St Johnstone, Grainger said he will never make a mistake that will cost him his first team place.
On 15 August 2009, Grainger made his debut for St Johnstone in a 2–2 draw against Motherwell. In the 2009–10 season, Grainger became a first-team regular at full back for 2 seasons until his departure. In a match against Hearts on 30 August 2009, Grainger was in a row with Suso Santana after claims Suso spat on Grainger in a touchline altercation during the first half, which Suso denied. Grainger, himself, says he accepted his [Suso] promise to never do it again [spit on him]. On 12 September 2009, Grainger provided an assist for captain Jody Morris to equalise in a 1–1 draw against St Mirren. On 3 October 2009, Grainger scored his first goal in a 2–0 win over Hamilton Academical. On 10 February 2010, Grainger provided a double assist for Graham Gartland and Peter MacDonald in a 3–2 loss against Kilmarnock. On 30 March 2010, Grainger provided a double assist for Cillian Sheridan and Chris Millar in a 4–1 win over Rangers. At the end of the season, Grainger said he was happy that St Johnstone had survived relegation from the SPL.
In the 2010–11 season, Grainger soon suffered an injury after colliding with the post, on the opening game of the season, which he came off on the 21st minute after being stretched, in a 1–1 draw against Hearts. After the match, Hearts player Calum Elliot apologised to Grainger after clashing with him which led him collide with the post. He unexpectedly made his return in the next game when he went on as a substitute in the first half in a 1–0 loss against Aberdeen. He scored his second goal for St Johnstone (first for the season) in a 2–1 loss against Rangers on 28 August 2010. On 23 October 2010, Grainger scored his third goal for St Johnstone in a 2–1 win over Hamilton Academical which was a winning goal from a direct free kick. After the match, Hamilton player Flávio Paixão claimed that Grainger assaulted him by punching him in the dugout. Manager Derek McInnes defended Grainger, insisting that Paixão should be embarrassed and ashamed over his [Paixão's] claims. On 27 October 2010, Grainger provided a double assist for Murray Davidson and Sam Parkin in a 3–2 loss over Celtic. On 30 October 2010, Grainger received the first red card of his career in a 3–0 loss against Celtic, after a second bookable offence.
Towards end of the season, Grainger informed Derek McInnes that he would not be renewing his contract this summer as with his wife pregnant, he wanted to return to his Cumbrian roots to be nearer to his family. On 25 May 2011, Grainger left St Johnstone and joined John Sutton and Jamie Hamill, to join Hearts, on a two-year contract. He made his debut for the club against Rangers at Ibrox on 23 July. Upon the move, Grainger said he would like to follow the footsteps of left backs like Gary Naysmith, Takis Fyssas, Tosh McKinlay and Lee Wallace.
On 23 July 2011, Grainger made his debut for Hearts in a 1–1 draw against Rangers and provided an assist for David Obua. At Hearts, Grainger established himself at left back. In the Third qualifying round of UEFA Europa League second leg against Hungarian side Paksi SE (which is the club first time in European Competition), Grainger provided assist for Ryan Stevenson to score the first goal in the match as Heart went on to win 5–1 (6–1 on aggregated) to go through to the next round. Ahead of a match against his former club, St Johnstone, Grainger feared receiving a mixed reception from the fans over lies of not moving to Cumbria and also his wife has given birth.
After an October 2011 match between Kilmarnock and Hearts which resulted 1–0 win for Kilmarnock, Grainger was criticised by Kilmarnock striker Dean Shiels, who branded him a coward following an incident in which Grainger's studs landed on Shiels' back while he was face-down. Grainger was suspended for two matches. His absence from the Hearts team was then prolonged by a groin injury, for which he needed an operation. In the Scottish Cup Final in the Edinburgh derby, Grainger scored a penalty on 48 minutes after Pa Kujabi was sent off which was his first goal. After the match, Grainger said the final was a massive motivation for the club.
Ahead of the 2012–13 season, Grainger underwent further groin surgery. He returned to training in mid July. He made his return after being absent for two match ahead of a new season in a 2–2 draw against Inverness Caledonian Thistle. On 21 October 2012, Grainger scored a winner in a 1–0 win over Motherwell from a free-kick. A month later on 17 November 2012, Grainger scored again, with a same result he scored a winner, but this time a win over St Mirren. A week after scoring, Grainger, however, suffered an injury during a match against Motherwell, landing awkwardly and needing surgery on his left knee. After a month on the sidelines, Grainger was told by the club that he would not be offered a new contract in the summer, the club citing financial difficulties as the main reason.
Following his release from Hearts, Grainger returned to England to have trials at Blackpool, Carlisle United and Sheffield United before moving back to Scotland to have trial at St Mirren. Three days later, Grainger joined St Mirren on a one-year deal for the 2013–14 season, with the option of a further year.
On 31 January 2014, it was announced that Grainger had left the club by mutual consent after making thirteen appearances.
On the same day, Grainger signed for Dunfermline Athletic, then in Scottish League One, the third tier of Scottish club football. The next day, Grainger made an immediate impact by scoring on his debut in a 3–1 win over East Fife. Since his debut, Grainger had an extended run in the first team throughout the season. Grainger then scored on 1 March 2014, in a 3–1 loss against Stranraer. A weeks after, on 15 March 2014, he received a red card, in a 2–0 loss against Rangers.
Despite this, Grainger helped the club finished second, qualifying the club for the Championship play-offs, and helped them to win their first play-off tie against Stranraer on aggregate. However, Dunfermline Athletic would remain in League One after losing in the Championship Play-offs final to Cowdenbeath 4–1 on aggregate, in which Grainger made his final appearance for the club. At the end of the season, Grainger was keen to stay at the club for another season. However, the club expressed its difficulties in keeping him at the club, and Grainger confirmed his departure through social media.
On 20 June 2014, Grainger penned a one-year contract with League Two club Carlisle United, his home town club and the first English club of his career. Upon his move to Carlisle United, Grainger said "This is a chance to come and play for the team I supported as a kid and I can’t wait to get settled back into the area. It is a bit of a dream come true, to be honest." He made his Carlisle debut in the team's opening match of the League Two season, a 1–0 home defeat to Luton Town. On 30 December 2015, he signed a contract to keep him with the blues until the summer of 2017.As of match played 12 September 2017
Scottish Premier League Young Player of the Month: 1
Heart of MidlothianScottish Cup (1): 2012