*Club domestic league appearances and goals, correct as of 16:00, 11 April 2024 (UTC) ‡ National team caps and goals, correct as of 15:00, 12 october 2024 (UTC)
Sandhu was named captain of the India national team for the first time in friendly match against Puerto Rico on 3 September 2016, a match India won 4–1.[3][4]
Gurpreet took up the game of football at the age of eight and joined the St Stephen's Academy in 2000.[10] After good performances at the St Stephen's Academy, Gurpreet was selected for his state youth team, the Punjab U16s. He made his youth state level debut in 2006 in Haldwani.[11] He stayed at St. Stephen's Academy until 2009 when he joined I-League side East Bengal as a youth player and spend the rest of 2009 playing for the Kolkata-based teams' youth team.[12]
In 2010, Gurpreet officially signed a professional contract with East Bengal and made five appearances for East Bengal before the end of the 2009–10 season. For the 2010–11 season, Gurpreet was loaned out to Pailan Arrows, seeking regular game time but ended the season with no caps for Indian Arrows, as they were called then.[13] He started the 2011–12 season as the second choice goalkeeper for East Bengal during the 2011 Federation Cup, but after the Federation Cup, Gurpreet took over as the first choice 'keeper for East Bengal's I-League campaign. He started in first game of the 2011–12 I-League campaign in their 0–1 loss to Churchill Brothers.[14] He made his debut in continental competitions in Asia on 6 March 2012 in the AFC Cup against Al-Oruba which East Bengal lost 0–1[15] and played his last continental match of the season against Kazma SC on 9 October 2012 which ended 1–2 with East Bengal losing the game.[16] He played his first match of the 2012–13 I-League season against United Sikkim on 10 November 2012 as a substitute goalkeeper in the 68th minute of the game which ended 0–1 to East Bengal[17] and played his last match of the season on 4 May 2013 in a 2–2 draw against Dempo SC.[18] Gurpreet played his first match of the 2013–14 I-League season against Rangdajied United on 17 December which ended 1–2 to East Bengal.[19] Gurpreet played his last league match for East Bengal on 28 April 2014 against United SC, which ended 0–3 with East Bengal taking the win.[20] Gurpreet played his first AFC Cup match 2013 against Selangor F.C. on 27 February 2013, which ended 1–0 to East Bengal.[21] Gurpreet played his last continental cup match for East Bengal on 1 October in a 4–2 loss against Kuwait SC.[22]
Sandhu signed for Norwegian club Stabæk on 15 August 2014.[23][24] On 18 January 2015, he made his senior debut for the club in a friendly match against second-tier side Follo in a 4–1 win.[25] After featuring in a number of cup games, including Stabæk's entire 2016 cup run,[26] he made his league debut in late May 2016 in an away match 5–0 victory over IK Start,[27] in the process the inaugural Indian to play in a European top division league.[28]
On 30 June 2016, Sandhu became the inaugural Indian to feature in a UEFA Europa League match, starting the first leg of Stabæk's Europa League First qualifying round tie against Connah's Quay Nomads at Belle Vue in Rhyl, Wales.[29] Sandhu played 30 minutes before being replaced by Sayouba Mandé.[30][31] Sandhu played his first Norwegian Football Cup match on 4 May 2016 against 2nd division club Bærum SK, which ended 0–3 for Stabæk.[32] Sandhu played his last league match for Stabæk against Lillestrøm SK on 3 June 2017 which ended 2–4 with Lillestrøm claiming the three points.[33] Sandhu left Stabæk in August 2017 to return to India.[34]
In August 2017, Gurpreet joined Bengaluru from Stabæk for undisclosed transfer amount.[35][36] He made his debut for Bengaluru against April 25 in an AFC Cup knockout stage match[37] and his league debut was against Mumbai City, keeping a clean sheet.[38] Sandhu played a pivotal role in Bengaluru's run in the 2017–18 Indian Super League season as they marched to the finals against Chennaiyin FC, which they came out losing 3–2.[39] Gurpreet kept seven clean sheets the season.[40] On 13 March 2018, Sandhu extended his contract until May 2023.[41] Sandhu played his first match of the 2018–19 Indian Super League season against the defending champions Chennaiyin FC on 30 September 2018, which Bengaluru won 1–0.[42] Sandhu kept seven clean sheets in the campaign,[43] as a result, they qualified for ISL finals for second consecutive time to play against FC Goa.[44][45] The match finished 1–0 for Bengaluru, and thereby collecting his first Indian Super League trophy.[46] Sandhu played his first match of the 2019–20 Indian Super League season on 21 October 2019 in a 0–0 draw against NorthEast United FC.[47] In the same season, Bengaluru went through knockout stage for the third consecutive time, before getting knocked down by ATK in the semi-finals on a 3–2 aggregate score.[48] Sandhu was awarded with the Golden Glove that season for keeping 11 clean sheets, which was the longest stretch of clean sheets by any goalkeeper that season.[49][50] Sandhu played his first match of the 2020–21 Indian Super League season against FC Goa on 22 November 2020 which ended in a 2–2 draw.[51]
Gurpreet became the vice-captain of Bengaluru in 2021-22 season after Dimas left the team at the end of 2020-21 season, Gurpreet led the side in an AFC Cup game against Maziya where they won 6-2, then again in ISL when skipper Sunil Chhetri was on the bench he again captained the team for a few games.[52]
He was then called up to the 23 men senior Indian squad for the 2011 AFC Asian Cup. He made his debut against Turkmenistan in a 1–1 draw.[54] He was called up to the 2018 FIFA World Cup qualifier squad against Nepal but was unused in both legs.[55] Gurpreet made his second appearance for the senior team against Iran in a 2018 World Cup qualifier at Bangalore, starting in a 0–3 defeat.[56] He made his next appearance against Turkmenistan in a 2–1 loss on 8 October.[57] He also kept a clean-sheet against Guam on 12 November 2015, a game that ended 1–0.[58] He kept his second clean sheet against Sri Lanka in a 2–0 win in the SAFF Suzuki Cup 2015.[59] In 2016, he captained the India national team against Puerto Rico[60] and played an essential role against India's 1–0 victory against Kyrgyzstan in a 2019 AFC Asian Cup qualification game in 2017.[61][62]
2022 FIFA World Cup Qualifiers AFC
He featured for India in the 2022 FIFA World Cup Qualifiers, where he made his 35th appearance for the team against Oman on 5 September 2019, where he conceded 2 goals as India lost the match 1–2.[63]
In the second group stage match 2022 World Cup Qualifiers, Gurpreet was given the captain armband as the skipper Sunil Chettri was out due to an injury against Asian Champions, Qatar. Gurpreet saved 11 shots on target from Qatar attack and became a hero for the team, as India successfully drew the match 0–0 against Qatar.[64][65][66]