Personal information | |||
---|---|---|---|
Full name | Craig Brodie MacGillivray [1] | ||
Date of birth | [2] | 12 January 1993||
Place of birth | Perth, Scotland | ||
Height | 1.88 m (6 ft 2 in) [2] | ||
Position(s) | Goalkeeper | ||
Team information | |||
Current team | Milton Keynes Dons | ||
Number | 1 | ||
Youth career | |||
2009–2011 | Harrogate Railway Athletic | ||
Senior career* | |||
Years | Team | Apps | (Gls) |
2011–2012 | Stalybridge Celtic | 4 | (0) |
2012–2014 | Harrogate Town | 99 | (0) |
2012–2013 | → Harrogate Railway Athletic (loan) | 5 | (0) |
2014–2017 | Walsall | 12 | (0) |
2017–2018 | Shrewsbury Town | 8 | (0) |
2018–2021 | Portsmouth | 112 | (0) |
2021–2023 | Charlton Athletic | 47 | (0) |
2023 | Burton Albion | 19 | (0) |
2023– | Milton Keynes Dons | 32 | (0) |
2024 | → Stevenage (loan) | 11 | (0) |
* Club domestic league appearances and goals as of 17:10, 28 June 2025 (UTC) |
Craig Brodie MacGillivray (born 12 January 1993) is a Scottish [3] [4] professional footballer who plays as a goalkeeper for EFL League Two club Milton Keynes Dons.
He was runner-up in the Football League Trophy with Walsall [5] and Shrewsbury. [6] He played in 2 Football League Trophy Final penalty shootouts with Portsmouth, winning once [7] and losing once. [8] He was also Portsmouth 2020/21 player of the season. [9] In 2025 he set a new MK Dons consecutive clean sheets record of seven games.
MacGillivray began his career as a reserve team goalkeeper for Harrogate Railway Athletic, [10] eventually earning a move to Stalybridge Celtic in 2011. [10] After making four appearances for Stalybridge in an injury–hit season, [11] MacGillivray joined Harrogate Town in August 2012. [10] He rejoined Harrogate Railway Athletic on loan for a brief spell in 2012. Following his return from loan, MacGillivray emerged as Harrogate Town's first–choice goalkeeper and made 90 appearances for the club over two seasons in the Conference North. [11] He was linked with moves to a number of Football League clubs during this time. [12]
Despite agreeing a two–year deal with Harrogate in November 2012, [12] MacGillivray joined League One side Walsall on 13 June 2014 on an initial one-year deal after the two clubs agreed a compensation package. [13] He acted as a deputy to Richard O'Donnell for much of the 2014–15 season but MacGillivray eventually made his debut for the Saddlers on 25 April 2015, keeping a clean sheet in a 2–0 victory over Oldham Athletic. [14]
On 20 May 2015, MacGillivray signed a new one-year contract with the club. [15] He made eight appearances in total in 2015–16 as Walsall missed out on promotion via the play-offs and was offered a one-year deal at the end of the season. [16] [17]
At the end of the 2016–17 season, Walsall and MacGillivray mutually agreed to end his contract after being unable to guarantee the stopper a regular starting place. [18]
On 5 July 2017, MacGillivray joined fellow League One side Shrewsbury Town on a free transfer on a one-year deal. [19]
He was offered a new contract by Shrewsbury at the end of the 2017–18 season. [20]
On 4 June 2018, League One club Portsmouth announced that MacGillivray had signed on a two-year deal. [21] MacGillivray made his Portsmouth debut at Fratton Park in their opening league match on 4 August 2018, earning a clean sheet in a 1–0 win over Luton Town. [22] Later that month he saved 3 penalties in a shoot out versus Stevenage. [23]
On 31 March 2019, MacGillivray started in goal for Portsmouth in the EFL Trophy final against Sunderland. MacGillivray made a save in the penalty shootout, saving a spot kick from Lee Cattermole. [7] Portsmouth went on to win the shootout 5–4 (2–2 after extra-time).
MacGillivray won Pompey Player of the Season for 2020–21 [9] In a move described in the media as "surprising" and "controversial", manager Danny Cowley released MacGillivray at the end of that season. He was also described in the media on his departure as, "Portsmouth's finest goalkeeper for almost a decade." [24] MacGillivray played 135 times in his 3 years at Portsmouth. [25]
On 28 June 2021, MacGillivray joined League One Charlton Athletic on a two-year deal. [26]
On 13 January 2023, MacGillivray joined Burton Albion. [27]
On 20 June 2023, MacGillivray free transferred to newly-relegated EFL League Two club Milton Keynes Dons. [28] He made his debut for the club in the opening game of the 2023–24 season on 5 August 2023, in a 5–3 away win over Wrexham. [29] On 8 October 2024 in an EFL Trophy win versus Arsenal under-21s, he repeated his previous shoot out performance of August 2020 by saving three penalties. [23]
On 18 January 2024, MacGillivray joined League One club Stevenage on loan until the end of the season. [30]
On 9th August 2025 in 2-0 win at Barrow, he became the first goalkeeper to achieve six consecutive shut-outs for MK Dons since their 2004 formation. [25] He extended that record on 16 August 2025 to seven games, in a 5-0 home win v Cheltenham Town. [31] The clean sheet run ended on 19 August 2025 when Ade Adeyemo scored in first half stoppage time in the 1-1 draw at Crawley Town. Despite conceding the goal, Sofascore rated MacGillivray's performance in the game at 7.8. [32]
While at Portsmouth on 27 August 2019, MacGillivray was called up to the senior Scotland squad for the first time by manager Steve Clarke. [33]
As well as MacGillivray's EFL trophy winning penalty shoot out save for Portsmouth, he has saved 3 penalties in EFL Trophy shootouts against both of Arsenal u-21s and Stevenage. [23] . On MacGillivray achieving 6 consecutive clean sheets for MK Dons in August 2025, Dons manager Paul Warne remarked, "Craig has the gloves, he comes for crosses, which I love. He has been outstanding but he has marshalled a back line which goes throughout the team." [25]
Club | Season | League | FA Cup | League Cup | Other | Total | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | ||
Walsall | 2014–15 [34] | League One | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
2015–16 [16] | League One | 5 | 0 | 2 | 0 | 0 | 0 | 1 [a] | 0 | 8 | 0 | |
2016–17 [35] | League One | 5 | 0 | 0 | 0 | 0 | 0 | 4 [b] | 0 | 9 | 0 | |
Total | 12 | 0 | 2 | 0 | 0 | 0 | 5 | 0 | 19 | 0 | ||
Shrewsbury Town | 2017–18 [36] | League One | 8 | 0 | 2 | 0 | 0 | 0 | 4 [b] | 0 | 14 | 0 |
Portsmouth | 2018–19 [37] | League One | 46 | 0 | 5 | 0 | 0 | 0 | 5 [c] | 0 | 56 | 0 |
2019–20 [38] | League One | 20 | 0 | 2 | 0 | 3 | 0 | 2 [b] | 0 | 27 | 0 | |
2020–21 [38] | League One | 46 | 0 | 2 | 0 | 2 | 0 | 2 [b] | 0 | 52 | 0 | |
Total | 112 | 0 | 9 | 0 | 5 | 0 | 9 | 0 | 149 | 0 | ||
Charlton Athletic | 2021–22 [39] | League One | 43 | 0 | 0 | 0 | 1 | 0 | 1 [b] | 0 | 45 | 0 |
2022–23 [40] | League One | 4 | 0 | 1 | 0 | 0 | 0 | 1 [b] | 0 | 6 | 0 | |
Total | 47 | 0 | 1 | 0 | 1 | 0 | 2 | 0 | 51 | 0 | ||
Burton Albion | 2022–23 [40] | League One | 19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 19 | 0 |
Milton Keynes Dons | 2023–24 [41] | League Two | 24 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 25 | 0 |
2024–25 [42] | League Two | 8 | 0 | 1 | 0 | 0 | 0 | 1 [b] | 0 | 10 | 0 | |
Total | 32 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 35 | 0 | ||
Stevenage (loan) | 2023–24 [41] | League One | 11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 11 | 0 |
Career total | 241 | 0 | 15 | 0 | 7 | 0 | 21 | 0 | 284 | 0 |
Walsall
Shrewsbury Town
Portsmouth
Individual