Early career Adams was born in
Leicester, where he played football as a youngster for
Highfield Rangers. He joined
Coventry City's youth academy as a seven-year-old, and was released at fourteen. He then played youth football for Leicester club
St Andrews before joining
Oadby Town in 2012. Initially playing for their youth team, Adams soon moved into the first team; over the 2012–13 season, the sixteen-year-old made 33 appearances for Oadby in the
United Counties League, of which 27 were in the starting eleven, and scored five goals. Adams took up a scholarship with
Ilkeston's academy, and helped their team win their section of the Football Conference Youth Alliance and reach the second round proper of the
2013–14 FA Youth Cup. He was also playing first-team football in the
Northern Premier League. Making his debut on 13 October as a very late substitute in a 3–2 win away to
Stocksbridge Park Steels, Adams made his first league start in November, scored his first senior goal for the club to complete a 3–1 win away to
Ashton United on 5 Aprilhe "picked up a loose ball and made a fine run through midfield and provided a left foot finish despite [the goalkeeper's] best effort to make the block"and finished his season with the
Derbyshire Senior Cup final, in which he was fouled for the
penalty kick that made sure of Ilkeston's victory. After Adams began 2014–15 in impressive fashionintroduced after 64 minutes of the second match of the season, "his pace, power and energy scar[ed] the life out of Stourbridge for the remainder of the game" as he provided two assists and was fouled for a penalty, before scoring twice in the next match, against
TraffordIlkeston signed him to a one-year contract. He continued in similar vein: away to
Stamford, Ilkeston's first and third goals were scored on the rebound when Adams' shots were parried, he was fouled for the free kick that led to the second, and "picked the ball up 35 yards out, beat a defender with ease and slid the ball home" to complete a 4–0 win; against Ashton United and
FC United of Manchester, he used strength and pace to take the ball from his own half to score; and by the end of October, when 45
scouts were reported to be watching him score his ninth goal of the season to add to eleven
assists, Ilkeston's chairman was resigned to his departure. but the
Sheffield Star reported it as a six-figure deal, and the Ilkeston club confirmed "a substantial up-front payment in non-league termsplus a percentage of any sell-on fee." Adams made his professional senior debut on 16 December in a 1–0 home victory over
Southampton, replacing
Jamal Campbell-Ryce at half-time as United made it to the semi-finals of the
League Cup. Four days later, he made both his first career start and his first
Football League appearance in a 1–1 draw with
Walsall at
Bramall Lane. Adams made ten appearances as Sheffield United finished the season in the League One play-off places. In the play-off semi-final second leg away to
Swindon Town on 11 May, he replaced
Ryan Flynn for the final five minutes and scored an equaliser for a 5–5 draw, but his team lost 7–6 on aggregate. Adams scored for the first time in the league on 15 August 2015, with both goals in a 2–0 win at home to
Chesterfield which was Sheffield United's first win of the season. Ten days later, he signed a new three-year deal at United with the option of an extra year. On 10 October, Adams scored twice in the first half of a 3–2 win over
Rochdale, He was given a straight red card on 5 December in the second round of the
FA Cup, for a foul on
Liam Kelly in a 1–0 win at
Oldham Athletic. Adams established himself as a regular in the team, partnering striker
Billy Sharp, but in March 2016 he was dropped to the bench by manager
Nigel Adkins for not working hard in training. He soon returned, finished the season with 12 goals from 41 appearances in all competitions, 11 from 36 in League One,
Birmingham City 2016–17 season Amid considerable transfer speculation, Adams played in Sheffield United's opening fixture of the 2016–17 season, but a bid was accepted from
Championship club
Birmingham City shortly afterwards, and he signed a three-year contract with the club on 8 August 2016. The fee was undisclosed, although the
Sheffield Star reported it to be around £2 million, and that United had turned down deals valued at £1.2 million and £1.7 million. Publicity surrounding the deal caused problems for the Ilkeston club: creditors believing that Ilkeston would benefit by an estimated £300,000 called in their debts, and when no payment was immediately forthcoming, the Northern Premier League suspended the club until the debts were settled, causing the postponement of their first four league fixtures. in 2016 Adams made his Birmingham debut on 16 August, as a second-half substitute in a 1–1 draw away to
Wigan Athletic. He played regularly through the first half of the season, though often as an impact substitute, and scored twice more, both times having come off the bench: to earn a draw against
Preston North End in September, and a determined late winner against
Bristol City in November. He returned to the starting eleven for a 4–0 defeat away at
Newcastle United in December, in which his hesitancy in a defensive situation led to the second goal, but was back on the bench for the next fixture, after which Rowett was sacked. The
Birmingham Mail suggested that the owners were "disgruntled" that several of Rowett's purchases, Adams included, were not regularly starting matches. Adams scored his first goal for three months in a losing cause away to Preston in mid-February,
Gianfranco Zola, Rowett's successor, had recognised the player's potential from the start, but was unsure of his best position. As results failed to improve, Zola experimented with formations and personnel: he alternated Adams and
Lukas Jutkiewicz as lone striker, and once
Clayton Donaldson returned to fitness, there was a short spell when Adams was not used at all. He started the visit to
Brighton & Hove Albion, playing just behind Donaldson, and scored a goal that both he and the
Mail hoped would keep him in the team. With three matches left in the season, and relegation increasingly likely, Zola quit, to be replaced by
Harry Redknapp. In the penultimate match, at home to
Huddersfield Town, Adams was fouled for a penalty that Jutkiewicz missed, and was then sent off after 23 minutes for a two-footed tackle. Birmingham still won, and the red card was rescinded on appeal, making him available for the final fixture, away to
Bristol City, which Birmingham had to win to be sure of staying up. After 16 minutes, Jutkiewicz played Adams through; he held off the defence and placed a low shot past the goalkeeper for the only goal of the game. He appeared in 40 of a possible 44 league matches and scored 7 goals, some way short of the target of 15 that he had set himself, but his contribution over the campaignhe also made three assists and won "nearly twice as many" penalties
2017–18 season Considerable transfer speculation surrounded Adams during the summer window. It was reported that Derby County, managed by Gary Rowett, had a £3 million offer rejected and that the club turned down bids from Fulham first of £5 million and then, on deadline day, of £10 million. In September, he signed a five-year contract on improved terms. On the field, Adams began the
2017–18 season with his first senior
hat-trick, against
Crawley Town in the
EFL Cup. In his next match, he injured a hamstring, and in his second match back, a month later, he damaged his other hamstring. He returned to the team to give
Steve Cotterill a winning start as Birmingham manager at home to league-leaders
Cardiff City on 13 October. According to
BBC Sport's reporter, he "opted to take on the visiting defence single-handed. He put his head down and ran, slicing his way past four men in red before cutting inside to drill a low, curled right-foot shot which
nutmegged Morrison before finding the right corner"; Cardiff manager
Neil Warnock said that Adams' kick to an opponent's head while attempting a defensive clearance should have resulted in a penalty. After Adams' winning goal against
Nottingham Forest in November, Birmingham's assistant manager,
Lee Carsley, praised his finishing while reminding him that he needed to get into goalscoring positions more often. He missed most of December with yet another hamstring injury, and Cotterill used him mainly from the bench when he did return. The pairing was disrupted by Adams' red card at Boltonthis time not rescinded on appeal but he returned to provide the assist for
Jacques Maghoma's winning goal against Sheffield United He finished the season as Birmingham's top scorer, albeit with just 9 goals, including the hat-trick against Crawley.
2018–19 season Ahead of the coming campaign, he chose to take over the vacant
squad number 9. Still in partnership with Jutkiewicz, Adams made a slow start: he scored both goals in a 2–1 win away to
Leeds United, but still only had three by mid-October. Adams attributed his improvement to intensive coaching from former striker
James Beattie, to improved fitness training that meant he still felt strong in the later stages of a match, and to a reminder from the manager before the visit to Leeds that "he wanted that fire in my belly and just be hungrier and be a nuisance for other people." According to Jutkiewicz, "it comes with growing up, he's got more of that steel about him and wants to physically impose himself on opponents and you can see that difference." There was considerable interest from Premier League clubs in January, but Birmingham did not want to sell, and no offer received was considered enough to force their hand given that the player could neither be replaced nor loaned back because of signing restrictions imposed by the EFL because the club were in breach of profitability and sustainability (P&S) rules. A bid of £12 million from
Burnley was the highest reported.
The Times suggested that the refusal to sell might constitute a further aggravated breach of the P&S rules. He had 15 goals by the end of the transfer window, and another 6 in February made him the first Birmingham player to score 20 in a season since
Steve Claridge in the
1994–95 Second Division-winning season and saw him named
EFL Championship Player of the Month. The citation for that award noted that "Adams has added consistency, work rate and team play to his game this season." He was named in the EFL's Championship Team of the Season and nominated, alongside Norwich City's
Teemu Pukki and Sheffield United's
Billy Sharp, for their Championship Player of the Season award. Despite a goal-drought in March, Adams finished the season as Birmingham's top scorer with 22, all scored in the Championship.was named Goal of the Season.
Southampton 2019–20 season On 1 July 2019, Adams joined
Southampton for a fee reported to be £15 million, signing a five-year contract. Adams made his
Premier League debut on 10 August in a 3–0 defeat against
Burnley. After being linked with a loan move to
Leeds United as a replacement for
Eddie Nketiah in the January 2020 transfer window, Southampton manager
Ralph Hasenhüttl advised that he wanted Adams to remain part of his plans. On 22 January 2020, with Leeds head coach
Marcelo Bielsa making Adams his main target, Southampton rejected a third offer for Adams, the offer (believed to be a loan fee plus the option to buy Adams permanently for £20 million) was rejected. On 5 July 2020, Adams scored his first goal for Southampton, a 40-yard effort looping over the goalkeeper in a 1–0 victory over
Manchester City. He scored his second two weeks later to wrap up the points in a 2–0 win away to
AFC Bournemouth. He then scored twice in Southampton's 3–1 victory over his former club Sheffield United in the season finale on 26 July 2020.
2020–21 season Adams scored his first goal of the 2020–21 season on 17 October 2020 in a 3–3 draw with
Chelsea. Adams did not score again until 6 March 2021, where he scored in three successive games against Sheffield United, Manchester City and
Brighton & Hove Albion. Adams also scored in Southampton's 3–1 victory against
Crystal Palace on 11 May 2021 and then four days later in a 3–1 victory over
Fulham.
2021–22 season Adams scored his first goal of the 2021–22 season on 26 October 2021 in the
EFL Cup, but Southampton were knocked out after Chelsea beat them 4–3 on penalties. Four days later, his first Premier League goal of the season earned Southampton a 1–0 victory against
Watford at
Vicarage Road and was nominated as a contender for Goal of the Month for October. Adams scored in a 2–1 defeat to
Norwich City on 20 November, and in a 2–2 draw with
Leicester City on 1 December. Adams was unable to face
Tottenham Hotspur on 28 December after testing positive for
COVID-19; the test result reached Hasenhüttl at 10pm the night before the game.
2022–23 season On 20 August 2022, Adams scored his first two goals of the 2022–23 season in a 1–2 victory against
Leicester City after coming on as a substitute for
Sékou Mara in the 59th minute. Three days later, Adams scored another brace in a 0–3 victory against
Cambridge United in the EFL Cup. His next goal would not come until 19 October 2022 in a 0–1 victory against Bournemouth, which helped Southampton to their first victory in six games. Adams scored in a 3–1 defeat to Liverpool on 12 November 2022. Adams scored another brace in the EFL Cup on 21 December 2022 in a 2–1 victory against
Lincoln City. On 31 January 2023, Adams scored in the EFL Cup semi-final second leg against Newcastle United, but Southampton lost 3–1 on aggregate. On 18 March 2023, Adams scored his final goal of the season in a 3–3 draw with Tottenham Hotspur. With Adams picking up an injury whilst on international duty, manager
Rubén Sellés stated that he did expect Adams to return from injury until the end of April. After featuring against Bournemouth, Newcastle and
Nottingham Forest, Sellés confirmed that Adams had felt more pain in his ankle which kept him out for the remainder of the season.
2023–24 season On 4 August 2023, Adams scored his first goal of the season in a 1–2 victory against
Sheffield Wednesday after replacing
Adam Armstrong in the 79th minute. Despite scoring in Southampton's three opening league games of the season, he was absent from the squad during a 2–1 victory against
Queens Park Rangers amid transfer speculation. However, Adams remained at the club following the transfer window after Southampton blocked a move. He ended the season with 18 goals in all competitions. On his second appearance in
Serie A, he assisted
Ivan Ilić's equalising goal and scored the winner himself as Torino beat
Atalanta 2–1. He ended his first season in Italy with 10 Goals. ==International career==