Queen's Park Shankland was born in
Glasgow and attended
Bannerman High School in
Baillieston. He progressed through the
Queen's Park youth system and was their top goalscorer in the
2012–13 season, having moved to the senior squad straight from the under-17 team; he also worked part-time as a tool setter in a local plumbing supplies company, a position arranged by the amateur club to help their young players earn a wage. Shankland signed for
Aberdeen at the end of the season. He was one of three Queen's Park players to move to top flight Scottish clubs at that time, as
Andy Robertson and
Aidan Connolly signed for
Dundee United. After impressing in the under-20s, scoring plenty of goals, and making first team appearances as a substitute, Shankland signed a new contract to run until summer 2017;
Dunfermline loan Shankland moved to
Dunfermline Athletic on loan for the latter part of the
2013–14 season. The 18-year-old striker scored seven league goals during his short spell in Fife; however, injury prevented him taking part in the
Pars' end-of-season
promotion play-off with
local rivals Cowdenbeath which ended in defeat.
St Mirren and Morton loans Shankland was loaned to
St Mirren in August 2015 for the rest of the 2015–16 season. He scored his first goal for the
Buddies in a 2–1 home defeat to
Raith Rovers on 18 September 2015. Shankland scored 10 goals in 32 appearances during his loan spell, and returned to Aberdeen at the end of the season. In July 2016 it was confirmed that Shankland had returned to St Mirren, on a season-long loan. However, having failed to score any league goals in the first half of the season, his St Mirren deal was cut short and on 11 January 2017, he moved on loan to their
rivals, fellow
Scottish Championship side
Greenock Morton. After helping the club to a fourth-place finish, his final appearance for Morton was in the
Scottish Premiership playoff defeat to Dundee United.
Ayr United In September 2017, free agent Shankland signed a short-term contract to play for
Scottish League One club
Ayr United until the following January. On 24 March 2018 he scored a hat-trick against former club Queen's Park. Ayr won
the league by one point, and after finishing with 29 goals, Shankland was named as the division's
PFA Scotland Players' Player of the Year. He started the 2018–19 season with a hat-trick against former club Morton in the
League Cup. On 28 July, he scored a "stunning goal" from 45 yards as Ayr defeated
Partick Thistle to qualify for the knockout stage of the competition. With a goal against Dunfermline on 25 August 2018, Shankland moved to 41 goals in 42 games for the
Honest Men. In November 2018, he scored four goals in a
league fixture away to Dundee United which ended 5–0 and put Ayr five points clear at the top of the table. However he then sustained an injury, and Ayr's form deteriorated in his absence. He returned towards the end of the season, but the team's campaign ended with defeat to Inverness CT in the opening round of the
Premiership promotion play-offs, having finished in fourth position. Shankland, whose total return was 34 goals in 41 games, was nominated for the division's PFA Player of the Year Award, but lost out to another prolific striker,
Stephen Dobbie. Both were named in the
Team of the Year.
Dundee United On 3 July 2019 it was announced that Shankland had left Ayr to join fellow Championship side Dundee United on a three-year contract, turning down offers from other clubs in both England and Scotland. He scored on his debut for the club in a
Scottish League Cup tie against
Hearts on 12 July 2019, and scored four goals in a 4–1 victory against
Inverness Caledonian Thistle on the opening day of the
2019–20 Scottish Championship season. Shankland was named
Scottish Championship Player of the Month for August 2019, having scored eight goals in four appearances during the month. The season was suspended in March 2020 due to the
COVID-19 pandemic in Scotland, and curtailed a month later, with Dundee United declared winners and promoted; up to that point Shankland had scored 24 league goals to finish as the division's top scorer, and maintained the ratio of almost a goal-per-game he had set at Ayr, with a total of 28 from 33 appearances. On 12 January 2021, Shankland scored with a "wonder strike" from to secure a 2–2 draw against
St Johnstone.
Beerschot On 11 August 2021, Shankland moved to Belgian side
Beerschot for an undisclosed fee. Shankland scored five league goals for Beerschot during the 2021–22 season as they were relegated from the Belgian top division. He scored his first goal for Hearts in a 1–1 draw with
Hibernian at
Easter Road on 7 August 2022. After a season-ending injury to club captain
Craig Gordon in a match on 28 December 2022, Shankland was named team captain for the rest of the season. Shankland became the first Hearts' player since
John Robertson in the
1991–92 season to score 20 goals in all competitions following his goal in the
Scottish Cup against Hibs to make it 2–0.
2023–24 In Gordon's continued absence, Shankland retained team captaincy for the 2023–24 season. His second season at Hearts showed a similar prolific form as his first, hitting 50 club goals by February 2024, less than 18 months after joining the club, becoming only the second player to hit the milestone in the 21st century alongside
Jamie Walker. ==International career==