Before the start of the 2015–16 season, Allen suffered an injury during one of the pre-season matches and was ruled out for a month. On 13 January 2016, he scored a last-minute equalizer in a 3–3 home draw against league leaders Arsenal. Thirteen days later, he scored the winning penalty in a shootout against Stoke City to send Liverpool to the 2016 League Cup Final. Allen was an unused substitute for Liverpool as they lost the final on penalties to Manchester City. However, Allen did play in the 2016 UEFA Europa League Final against Sevilla on 18 May 2016 in Basel, where despite initially taking the lead, Liverpool were defeated 3–1. At the end of the season, Allen expressed his desire to play regular football.
On 25 July 2016, Allen joined Stoke City on a five-year contract for a reported £13 million transfer fee. He made his Premier League debut for Stoke on 13 August 2016 in a 1–1 draw away at Middlesbrough. Speaking after his move to Stoke, Allen said he "had to move on" from Liverpool in order to receive regular playing time. He scored his first goal for Stoke on 24 September 2016 in a 1–1 draw against West Bromwich Albion. Allen then scored against Manchester United on 2 October as Stoke earned their first point at Old Trafford since 1980. Allen continued his goal scoring run with both goals in a 2–0 win against Sunderland earning Stoke their first victory of the 2016–17 season. In November 2016, Allen was included in the 40-man shortlist for the UEFA Team of the Year. He scored a vital winning goal against Crystal Palace on 11 February 2017. Allen made 39 appearances in 2016–17, scoring six goals, as Stoke finished in 13th position. Allen played 38 times in 2017–18, scoring four goals as Stoke suffered relegation to the Championship. Following relegation, Allen said he would be willing to stay with the club.
At Euro 2016, Allen set-up Aaron Ramsey's goal in a 3–0 win over Russia on 20 June, which allowed Wales to top their group and advance to the knockout round of the tournament. Wales were eliminated following a 2–0 defeat to eventual champions Portugal in the semi-final on 6 July. Allen was named to the team of the tournament for his performances.