He won the Scottish Youth Cup in 1999–2000, with Hearts beating Rangers 5–3 at Hampden Park[10] and the SPL Under-18 League in 2000–01, both under the management of John McGlynn.
[13] Cowdenbeath went undefeated in their home games during Gordon's time there,[citation needed] and he won praise for an outstanding performance in an away league match in Dumfries versus Queen of the South which ended 3–1.
[15][17] Gordon made his first appearance in European competition on 6 November 2003, playing in the first leg of Hearts' UEFA Cup second round tie in France against Bordeaux.
[36] Hearts owner Vladimir Romanov rejected an approach from Serie A side Palermo for Gordon earlier in the season.
[21][38] For much of the 2006–07 season rumours linked Gordon with a move away from Tynecastle, particularly following his involvement in the issuing of a statement against club owner Vladimir Romanov.
Gordon and Paul Hartley flanked captain Steven Pressley as he read out a statement claiming there was "significant unrest" in the Hearts dressing room.
Arsenal manager Arsène Wenger observed Gordon in action in Scotland's 1–0 victory against France in a Euro 2008 qualifying match.
Gordon confirmed his rising stock with a spectacular cross-goal save in the October 2006 Edinburgh derby[41] and the following month he was named as Hearts' new captain, replacing the departed Pressley.
Despite Hearts' claims that he was ill, he was "dropped" to the bench for the game against Dundee United in December 2006 for what many believed to be a disciplinary measure by the club following his involvement in the "Riccarton Three" statement.
[44] Hearts failure to qualify for European competition at the season's end further increased speculation that Gordon would be sold, with Sunderland and Aston Villa rumoured suitors in July 2007.
[49] Gordon made his debut for Sunderland in the opening game of the 2007–08 Premier League against Tottenham Hotspur, keeping a clean sheet as his side won 1–0.
[102] Gordon endured a torrid night in the Europa League against Inter Milan on 19 February 2015, being culpable for Inter's opening goal and at fault for their third before half-time; Celtic rallied to square the match at 3–3 with an injury time goal, and Gordon went some way to redeeming his earlier errors by pulling off an outstanding save from Xherdan Shaqiri's free kick in what proved to be the last action of the game.
[103] In the second leg at the San Siro, Gordon kept 10-man Celtic in the tie with a number of excellent saves until the 87th minute when Fredy Guarín scored with a powerful strike to give Inter a 1–0 win on the night and a 4–3 aggregate victory.
[105] Gordon won his first silverware with Celtic after they defeated Dundee United 2–0 in the Scottish League Cup Final on 15 March 2015.
[127] However, Gordon's form at this time was generally poorer than the previous season, in part due to Celtic struggling to find a settled defensive line-up following the departures of centre-halves Virgil van Dijk and Jason Denayer.
[128][129] Gordon saved a penalty in a 2–0 second leg defeat at Hapoel Be'er Sheva in the UEFA Champions League play-off round, with Celtic progressing to the group stage after a three-year absence 5–4 on aggregate.
[130] He made his first ever appearance in the UEFA Champions League group stage in a 3–3 home draw with Manchester City on 28 September 2016.
[134][135] Gordon shut out his former club Hearts four days later, in a 4–0 home win, as Celtic broke the Lisbon Lions' unbeaten record.
[139] Gordon again shut out Hearts, in a 5–0 victory at Tynecastle on 2 April 2017, with the club clinching the Scottish Premiership title for the sixth successive season in record time with eight matches remaining.
[147][148] Gordon played regularly during that time but occasional high-profile mistakes, such as in the UEFA Europa League against Fenerbahçe in 2015[149] and Red Bull Salzburg in 2018,[150] posed doubts as to his reliability; he lost his place to Fraser Forster (returning from Southampton on loan) in 2019–20, and made only six first team appearances during that season.
[152] He made a good start to his second spell with Hearts, helping them reach the 2020 Scottish Cup Final by making key saves during the semi-final against Hibs (delayed from the previous season).
[166] On 24 December 2022, Gordon suffered a serious leg injury following a collision with Steven Fletcher during a Scottish Premiership match against Dundee United.
[168] Gordon resumed training with the Hearts first team in October 2023,[169] and he made his first appearance since injury on 20 January 2024 against Spartans in the Scottish Cup.
[180][181] He also registered an assist in the Parc de Princes, after James McFadden controlled Gordon's punt, turned his marker and smashed home from 35 yards.
[77] Gordon eventually obtained his 41st cap, ending a four-year absence from international football, when he came on as a half-time substitute in a friendly defeat to England on 18 November 2014.
[184] Gordon started his first Scotland match in almost five years in a friendly win versus Northern Ireland in March 2015 [185][186] Gordon made his first start for Scotland in a competitive match in seven years in a 2018 World Cup qualifier against England in November 2016,[187] and retained his place in the team for the 1–0 home win versus Slovenia in March 2017.
[193][194] He also gained his 55th cap, a 1–0 away defeat by Slovakia in the 2020–21 UEFA Nations League, set a new record for the longest-spanning international career for a Scottish player (16 years 5 months and 17 days).
[195] This beat a mark set by his rival for the position David Marshall just three days earlier, which itself had overtaken a record dating back to 1903 by fellow goalkeeper Ned Doig.
[169] In February 2024 he stated that he wanted to become Scotland's oldest player, the record being held by David Weir,[172] and was subsequently recalled to the international squad a month later.
[205] Gordon broke that record on 7 June when he appeared as a second-half substitute in a friendly against Finland, but he was left out of the final squad for UEFA Euro 2024.