[2] Sandhu was named captain of the India national team for the first time in a friendly match against Puerto Rico on 3 September 2016.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.