Born in Enfield, Greater London, Grainger joined the youth ranks of Leyton Orient from Norwich City's in 2009. Due to injuries and departures, he was their substitute goalkeeper for 20 games in 2012–13 at the age of 16. On 21 February 2014, Grainger joined Conference North club Histon on a month-long work experience loan, having previously been at Cray Wanderers in the Isthmian League. He made his debut the following day in the 2–1 defeat away to Hednesford Town, and returned to Leyton with five appearances to his name. On 19 May 2014, Grainger was one of three players given their first professional contracts by Leyton Orient. The following season, he had three loan spells at Farnborough in the Conference South. The first began in August 2014 but Grainger was recalled in September when Orient's first-choice keeper Adam Legzdins suffered an injury. Once Legzdins had recovered, Grainger's second loan period at Farnborough began in November 2014 and was intended to continue until January 2015, but he was soon recalled again by Orient. The third loan period began in late March 2015 but he made only one appearance. In February 2015, his Orient contract was extended until 2017. While Orient's first-choice goalkeeper Alex Cisak was away on international duty, Grainger made his professional debut on 1 September 2015 in the first round of the Football League Trophy, a 2–1 defeat for the O's against Luton Town at Kenilworth Road, conceding a last-minute winner by Stephen O'Donnell. He followed this with his Football League debut for Orient at Exeter City on 5 September. He conceded an early penalty in Orient's 4–0 defeat. He kept his first senior clean sheet in the FA Cup Second Round 0–0 draw at home to Scunthorpe United on 5 December. He signed a new two-year contract with Leyton Orient on 30 June 2017. On 25 June 2019, Grainger joined National League South side Dulwich Hamlet.
International career
In February 2014, Grainger was called up to the England U18 squad to face Croatia in two friendly matches. He was an unused substitute for the first, but played the full 90 minutes of the second match, a 2–1 defeat on 5 March 2014.
Personal life
He is the son of Martin Grainger, who played professionally as a defender, most significantly at Birmingham City.