# 2019–20 Stoke City F.C. season

The 2019–20 season was Stoke City's 103rd season in the Football League, the 43rd in the second tier and sixth in the Championship.
Stoke manager Nathan Jones brought in ten new players ahead of the 2019–20 season in order to play in his preferred 'diamond' formation. These changes failed to improve the team and they began the season in terrible form collecting just eight points from the first 14 matches which lead to Jones being sacked by the club on 1 November 2019. He was replaced by the Northern Ireland manager Michael O'Neill. He had an instant impact as the team beat relegation rivals Barnsley, Wigan Athletic and Luton Town, however they went into Boxing Day bottom of the Championship table before a dramatic late victory over Sheffield Wednesday lifted them out of the relegation zone.
Stoke began 2020 well, beating Huddersfield Town 5–2 and also registering wins over promotion contenders West Bromwich Albion and Swansea City. Poor defeats against Derby County and Queens Park Rangers prevented the side from pulling clear of the bottom three, until a 5–1 win over Hull City at the beginning of March. The EFL was suspended on 13 March due to the COVID-19 pandemic. The EFL returned on 20 June with the final nine matches played behind closed doors. Stoke won four of the nine and finished in 15th position, eight points clear of the relegation zone.

## Pre-season

Stoke announced their retained list in May 2019, the most notable departures were the veteran Scottish duo Charlie Adam and Darren Fletcher and reserve goalkeeper Jakob Haugaard. Stoke returned to training on 26 June 2019 with Jones making six new signings. In came goalkeeper Adam Davies, defenders Liam Lindsay and Stephen Ward, midfielders Jordan Cousins and Nick Powell and striker Lee Gregory. Stoke played a training match against Leek Town at Clayton Wood on 5 July, winning 6–0. The squad then traveled to De Lutte on the Dutch-German border for a week-long a training camp. Stoke played out a 1–1 draw against German 3. Liga side MSV Duisburg with Sam Clucas cancelling out Vincent Vermeij's strike. Stoke's first domestic friendly saw them beat National League side Wrexham 3–1. This was followed up with a 2–0 win at League One Tranmere Rovers and a 2–1 victory at Lincoln City with a brace from Campbell. Stoke ended pre-season with a 2–1 home defeat to Leicester City, with Ryan Shawcross suffering up a serious injury.
| Date | Opponent | Venue | Result | Scorers | Report |
| 5 July 2019 | Leek Town | H | 6–0 | Campbell (2) 25', 33', Afobe 58', Vokes (3) 63', 67', 68' | Report |
| 13 July 2019 | MSV Duisburg | A | 1–1 | Clucas 67' | Report |
| 17 July 2019 | Wrexham | A | 3–1 | Campbell 5', Vokes (2) 69', 79' | Report |
| 20 July 2019 | Tranmere Rovers | A | 2–0 | Smith 54', Batth 85' | Report |
| 24 July 2019 | Lincoln City | A | 2–1 | Campbell (2) 10', 21' | Report |
| 27 July 2019 | Leicester City | H | 1–2 | Powell 70' | Report |

## Championship
### August

For the season opener against Queens Park Rangers, manager Nathan Jones started three of his new signings Tommy Smith, Jordan Cousins and Nick Powell as well as handing 18-year-old Nathan Collins his first league start. Stoke made a bad start as Jordan Hugill took advantage of a mistake from Jack Butland after only seven minutes and Eberechi Eze doubled Rangers' advantage early in the second half. Sam Clucas pulled one back but the match finished 2–1 to QPR. Stoke lost their first away match of the season 3–1 at newly promoted Charlton Athletic. Stoke conceded after just two minutes against Derby County, Martyn Waghorn finding the net. Stoke went in front after two goals from Scott Hogan but a penalty from Waghorn denied the Potters victory. Against Preston North End goalkeeper Jack Butland made two horrendous first-half errors gifting the Lillywhites a 2–0 lead. Preston added to their lead in the second half with James McClean getting a late consolation. The result increased the pressure on manager Nathan Jones who questioned Butland's state of mind. Jones made six changes to his side for the visit of Leeds with Allen, Batth and Butland being dropped. It had no impact however as Leeds ran out 3–0 winners. Stoke ended August with only a point after a 2–1 defeat at Birmingham City.

### September

Following the international break, Jones again made a number of changes against Bristol City with most notably the return of Badou Ndiaye. Stoke made a good start with Clucas scoring after four minutes but soon after Joe Allen was shown a red card for a foul on Josh Brownhill and Stoke were unable to see the game out with ten men, losing 2–1. Stoke then made their final league trip to Brentford's Griffin Park where they played out an uninspiring goalless draw. Stoke lost again the following week, 3–2 at home to Nottingham Forest.

### October

The first match of October was against Huddersfield Town who like Stoke, had made a bad start to the season. It was a match of poor quality which was won late on by the Terriers leaving Stoke cut adrift at the bottom of the table. There was confusion following the match as it appeared that Jones had admitted that he would be sacked but then took media duties for the next game against Swansea City days later. Stoke made a terrible start to the match as André Ayew scored inside the first minute. Stoke recovered though and levelled through Sam Clucas and they went on to earn their first victory of the season with a late goal from Scott Hogan. Following the international break Stoke took on promotion favorites Fulham. A first league goal from Tyrese Campbell and a penalty from Gregory saw the Potters win 2–0 lifting themselves off the bottom of the table and ended a club record run of home games without a victory. Stoke then lost 1–0 at Sheffield Wednesday, with a mistake from Liam Lindsay gifting Massimo Luongo a simple chance to score. City suffered another damaging defeat, their tenth of the season away at Millwall.

### November

Jones was sacked by Stoke on 1 November 2019. Rory Delap took caretaker charge of the team for the next match, a 2–0 home defeat to promotion chasing West Bromwich Albion. Northern Ireland manager Michael O'Neill was appointed on 8 November just before an important match against Barnsley. O'Neill set the side up in a more familiar 4–3–3 formation which paid off as Stoke made a great start with Clucas lobbing Tykes keeper Bradley Collins from halfway. Gregory then converted a penalty after McClean was brought down by Alex Mowatt. Cameron McGeehan pulled one back for Barnsley just after half time before two quick goals from Allen and Clucas put Stoke into a 4–1 lead. Barnsley substitute Patrick Schmidt added a late consolation to make it 4–2. The result ended a run of 88 games without scoring three or more in a match. O'Neill won his first home game 2–1 against Wigan Athletic on 23 November. Wigan took the lead through Sam Morsy after another defensive mistake from Butland and Edwards. Danny Batth equalised just after half time and deep into stoppage time Mame Biram Diouf scored his first goal since April 2018 to earn the three points. Stoke lost their next match 1–0 at Cardiff City, and ended November with a 2–1 defeat against Blackburn Rovers.

### December

Stoke lost 2–1 at Hull City on 7 December, despite taking an early lead through Sam Vokes. A pathetic second half display saw Jarrod Bowen score twice and Stoke failed to trouble the Tigers' goalkeeper which prompted an angry reaction from the traveling support. The players responded by beating relegation rivals Luton Town 3–0. City then played out a dreadful goalless draw against Reading where neither side registered a shot on target. Stoke began the Christmas period with a 2–1 defeat at Middlesbrough. Stoke seemed destined for another defeat against Sheffield Wednesday on Boxing Day after two quick goals from Morgan Fox and Tom Lees had cancelled out McClean's first half opener. Stoppage time goals from Campbell and Vokes earned Stoke a 3–2 victory and moved the side out of the bottom three for the first time this season. Stoke ended a forgettable 2019 with a 1–0 loss at Fulham.

### January

Stoke began 2020 with a resounding victory away at Huddersfield Town. Vokes had given Stoke a first half lead but two quick Terriers goals following the restart turned the game in their favour. But Stoke rallied and goals from Powell, Gregory and a brace from Campbell gave City a 5–2 win. After their FA Cup exit at Brentford, Stoke then played out an uneventful goalless draw with Millwall. Stoke then claimed their most important victory of the season on 20 January, beating top of the table West Bromwich Albion 1–0 with an early goal from Campbell. Stoke continued their revival with a 2–0 home win against Swansea City with goals from Clucas and McClean. Stoke ended January with a heavy defeat at Phillip Cocu's Derby County.
In the January transfer window Stoke cancelled the loans of Cameron Carter-Vickers, Mark Duffy and Scott Hogan, whilst also letting Peter Etebo, Badou Ndiaye and Ryan Woods leave on loan. Into the team came Northern Irish midfielder Jordan Thompson from Blackpool, centre-back James Chester on loan from Aston Villa and young midfielder Tashan Oakley-Boothe from Tottenham Hotspur.

### February

Stoke started February with a comfortable 3–1 victory against Charlton Athletic with goals from Ince, McClean and Powell. This was followed by a 2–0 loss to Preston where wingers, McClean and Verlinden both picked up knee injuries. The team suffered another heavy away defeat this time going down 4–2 at Queens Park Rangers, having taken a 2–0 lead. Stoke made amends the following week, beating play-off chasing Cardiff City 2–0 and gaining a goalless draw at in-form Blackburn Rovers. Stoke then began a run of fixtures against their relegation rivals with a 1–1 draw at Luton Town, with a late James Collins penalty cancelling out Vokes' opener.

### March, April & May

The only game in March saw Stoke easily defeat Hull City 5–1, with Clucas and Powell both scoring twice and Campbell slotting in a penalty, although there was a bad moment through as Joe Allen suffered a season-ending ankle injury. On 13 March The EFL was suspended until 3 April due to the COVID-19 pandemic. This was extended until 30 April, but was then suspended indefinitely on 3 April 2020. On 11 May 2020 the UK government confirmed there will be no professional sport in England until 1 June 2020 at the earliest.
During the crisis Stoke allowed the NHS to set up a drive-through test centre on the Bet365 Stadium east car park whilst a local company used the north car park to fulfill a government contract to make equipment for the NHS Nightingale Hospitals. Championship squads returned to training on 25 May with the intention to finish the season behind closed doors, with some temporary new rules including five substitutes being allowed.

### June

The provisional fixture list for the remaining nine matches was announced on 8 June 2020. Stoke's preparations for the season restart were disrupted after manager O'Neill tested positive for coronavirus on 9 June which caused a training match against Manchester United to be cancelled. Stoke played two ninety-minute practice matches against Derby County on 13 June 2020. O'Neill was able to return to work on 19 June after displaying no symptoms.
Stoke drew their first match of the restart 1–1 away at Reading with a 92nd-minute header from Nick Powell cancelling out Lucas João's early strike. City then suffered a poor 2–0 defeat against relegation rivals Middlesbrough which saw Powell sent-off late on for two bookable offences. This was followed by a shambolic performance at Wigan Athletic who easily outplayed Stoke winning 3–0 with O'Neill questioning the players desire and attitude.

### July

The players responded by beating relegation rivals Barnsley 4–0 with Campbell scoring twice. They were then heavily beaten 5–0 at league leaders Leeds United. Stoke secured a vital 2–0 victory against out of form Birmingham City on 12 July, lifting the team four points above the relegation zone with three games remaining. City continued to edge closer to safety with a 1–1 draw at Bristol City, Danny Batth's powerful 64th-minute header cancelling out Filip Benković's first half opener. Stoke secured their Championship status with a 1–0 win against promotion chasing Brentford, with Lee Gregory scoring after Bees' keeper David Raya spilled a shot from Clucas. Stoke ended the 2019–20 season with a 4–1 victory at Nottingham Forest a result which saw Forest dramatically miss out on a play-off place, whilst Stoke finished the campaign in 15th position.

### Results

| Match | Date | Opponent | Venue | Result | Attendance | Scorers | Report |
| 1 | 3 August 2019 | Queens Park Rangers | H | 1–2 | 24,004 | Clucas 78' | Report |
| 2 | 10 August 2019 | Charlton Athletic | A | 1–3 | 17,848 | Ince 37' | Report |
| 3 | 17 August 2019 | Derby County | H | 2–2 | 23,863 | Hogan (2) 32', 55' | Report |
| 4 | 21 August 2019 | Preston North End | A | 1–3 | 11,973 | McClean 89' | Report |
| 5 | 24 August 2019 | Leeds United | H | 0–3 | 24,090 | | Report |
| 6 | 31 August 2019 | Birmingham City | A | 1–2 | 20,652 | Lindsay 58' | Report |
| 7 | 14 September 2019 | Bristol City | H | 1–2 | 22,357 | Clucas 4' | Report |
| 8 | 21 September 2019 | Brentford | A | 0–0 | 11,870 | | Report |
| 9 | 27 September 2019 | Nottingham Forest | H | 2–3 | 23,800 | Gregory 10', McClean 84' | Report |
| 10 | 1 October 2019 | Huddersfield Town | H | 0–1 | 20,372 | | Report |
| 11 | 5 October 2019 | Swansea City | A | 2–1 | 16,612 | Clucas 22', Hogan 90' | Report |
| 12 | 19 October 2019 | Fulham | H | 2–0 | 23,189 | Campbell 16', Gregory 80' (pen) | Report |
| 13 | 22 October 2019 | Sheffield Wednesday | A | 0–1 | 22,460 | | Report |
| 14 | 26 October 2019 | Millwall | A | 0–2 | 14,008 | | Report |
| 15 | 4 November 2019 | West Bromwich Albion | H | 0–2 | 22,360 | | Report |
| 16 | 9 November 2019 | Barnsley | A | 4–2 | 14,891 | Clucas (2) 8', 67', Gregory 30' (pen), Allen 64' | Report |
| 17 | 23 November 2019 | Wigan Athletic | H | 2–1 | 22,530 | Batth 55', Diouf 90+3' | Report |
| 18 | 26 November 2019 | Cardiff City | A | 0–1 | 20,884 | | Report |
| 19 | 30 November 2019 | Blackburn Rovers | H | 1–2 | 22,292 | Evans 80' (o.g.) | Report |
| 20 | 7 December 2019 | Hull City | A | 1–2 | 11,019 | Vokes 7' | Report |
| 21 | 10 December 2019 | Luton Town | H | 3–0 | 20,216 | McClean 35', Allen (2) 45+2', 50' | Report |
| 22 | 14 December 2019 | Reading | H | 0–0 | 21,701 | | Report |
| 23 | 20 December 2019 | Middlesbrough | A | 1–2 | 18,270 | Clucas 53' | Report |
| 24 | 26 December 2019 | Sheffield Wednesday | H | 3–2 | 25,359 | McClean 11', Campbell 90+3', Vokes 90+7' | Report |
| 25 | 29 December 2019 | Fulham | A | 0–1 | 18,747 | | Report |
| 26 | 1 January 2020 | Huddersfield Town | A | 5–2 | 21,933 | Vokes 15', Powell 57', Campbell (2) 66', 70', Gregory 90' | Report |
| 27 | 11 January 2020 | Millwall | H | 0–0 | 22,515 | | Report |
| 28 | 20 January 2020 | West Bromwich Albion | A | 1–0 | 23,199 | Campbell 9' | Report |
| 29 | 25 January 2020 | Swansea City | H | 2–0 | 22,593 | Clucas 55', McClean 90+1' | Report |
| 30 | 31 January 2020 | Derby County | A | 0–4 | 27,984 | | Report |
| 31 | 8 February 2020 | Charlton Athletic | H | 3–1 | 23,508 | McClean 28', Ince 47', Powell 66' | Report |
| 32 | 12 February 2020 | Preston North End | H | 0–2 | 20,418 | | Report |
| 33 | 15 February 2020 | Queens Park Rangers | A | 2–4 | 13,125 | Clucas 27', Campbell 31' | Report |
| 34 | 22 February 2020 | Cardiff City | H | 2–0 | 25,436 | Paterson 25' (o.g.), Allen 72' | Report |
| 35 | 26 February 2020 | Blackburn Rovers | A | 0–0 | 12,343 | | Report |
| 36 | 29 February 2020 | Luton Town | A | 1–1 | 10,070 | Vokes 9' | Report |
| 37 | 7 March 2020 | Hull City | H | 5–1 | 23,126 | Powell (2) 11', 86', Clucas (2) 18', 50', Campbell 16' (pen) | Report |
| 38 | 20 June 2020 | Reading | A | 1–1 | — | Powell 90+2' | Report |
| 39 | 27 June 2020 | Middlesbrough | H | 0–2 | — | | Report |
| 40 | 30 June 2020 | Wigan Athletic | A | 0–3 | — | | Report |
| 41 | 4 July 2020 | Barnsley | H | 4–0 | — | Vokes 8', Campbell (2) 10', 38', Ince 87' | Report |
| 42 | 9 July 2020 | Leeds United | A | 0–5 | — | | Report |
| 43 | 12 July 2020 | Birmingham City | H | 2–0 | — | Batth 12', Clucas 45' | Report |
| 44 | 15 July 2020 | Bristol City | A | 1–1 | — | Batth 64' | Report |
| 45 | 18 July 2020 | Brentford | H | 1–0 | — | Gregory 38' | Report |
| 46 | 22 July 2020 | Nottingham Forest | A | 4–1 | — | Batth 19', McClean 73', Gregory 78', da Costa 90+6' (o.g.) | Report |

### League table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts |
| 12 | Bristol City | 46 | 17 | 12 | 17 | 60 | 65 | −5 | 63 |
| 13 | Queens Park Rangers | 46 | 16 | 10 | 20 | 67 | 76 | −9 | 58 |
| 14 | Reading | 46 | 15 | 11 | 20 | 59 | 58 | +1 | 56 |
| 15 | Stoke City | 46 | 16 | 8 | 22 | 62 | 68 | −6 | 56 |
| 16 | Sheffield Wednesday | 46 | 15 | 11 | 20 | 58 | 66 | −8 | 56 |
| 17 | Middlesbrough | 46 | 13 | 14 | 19 | 48 | 61 | −13 | 53 |
| 18 | Huddersfield Town | 46 | 13 | 12 | 21 | 52 | 70 | −18 | 51 |

## FA Cup

Stoke were knocked out of the FA Cup in the Third Round for a fourth season in a row, losing 1–0 at Brentford.
| Round | Date | Opponent | Venue | Result | Attendance | Scorers | Report |
| R3 | 4 January 2020 | Brentford | A | 0–1 | 7,575 | | Report |

## EFL Cup

Stoke were drawn away at Wigan Athletic in the first round of the EFL Cup. They won 1–0 with a first goal from Sam Vokes. Stoke faced Leeds United at Elland Road just three days after the sides met in the Championship. City took a 2–0 lead through Danny Batth and Sam Vokes before a Butland error gifted Leeds a way back and Hélder Costa sent the tie to penalties. With both sides scoring four each, Butland made it 5–4 and Jack Harrison missed to send Stoke through. Stoke were then knocked out on penalties in the third round by Crawley Town despite Vokes giving them a 23rd-minute lead.
| Round | Date | Opponent | Venue | Result | Attendance | Scorers | Report |
| R1 | 12 August 2019 | Wigan Athletic | A | 1–0 | 3,821 | Vokes 10' | Report |
| R2 | 27 August 2019 | Leeds United | A | 2–2 (5–4 pens) | 30,002 | Batth 39', Vokes 44' | Report |
| R3 | 24 September 2019 | Crawley Town | A | 1–1 (3–5 pens) | 4,165 | Vokes 23' | Report |

## Squad statistics

| No. | Pos. | Name | Championship | Championship | FA Cup | FA Cup | League Cup | League Cup | Total | Total | Discipline | Discipline |
| No. | Pos. | Name | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | | |
| 1 | GK | Jack Butland | 35 | 0 | 0 | 0 | 1 | 0 | 36 | 0 | 0 | 0 |
| 2 | DF | Tom Edwards | 13 | 0 | 1 | 0 | 1 | 0 | 15 | 0 | 0 | 0 |
| 3 | DF | Stephen Ward | 15 | 0 | 0 | 0 | 2 | 0 | 17 | 0 | 3 | 0 |
| 4 | MF | Joe Allen | 34(1) | 4 | 0 | 0 | 0 | 0 | 34(1) | 4 | 5 | 1 |
| 5 | DF | Liam Lindsay | 17(3) | 1 | 1 | 0 | 2 | 0 | 20(3) | 1 | 4 | 0 |
| 6 | MF | Danny Batth | 40(3) | 4 | 0 | 0 | 2 | 1 | 42(3) | 5 | 4 | 0 |
| 7 | MF | Tom Ince | 31(7) | 3 | 1 | 0 | 1 | 0 | 33(7) | 3 | 1 | 0 |
| 8 | MF | Peter Etebo | 8(3) | 0 | 0 | 0 | 0(3) | 0 | 8(6) | 0 | 1 | 0 |
| 9 | FW | Sam Vokes | 18(18) | 5 | 0(1) | 0 | 3 | 3 | 21(19) | 8 | 0 | 0 |
| 10 | FW | Benik Afobe | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 11 | MF | James McClean | 33(3) | 7 | 0 | 0 | 1 | 0 | 34(3) | 7 | 10 | 0 |
| 12 | DF | Cameron Carter-Vickers | 12 | 0 | 0 | 0 | 2(1) | 0 | 14(1) | 0 | 2 | 0 |
| 12 | DF | James Chester | 13(3) | 0 | 0 | 0 | 0 | 0 | 13(3) | 0 | 0 | 0 |
| 14 | DF | Tommy Smith | 27(3) | 0 | 0 | 0 | 2 | 0 | 29(3) | 0 | 5 | 0 |
| 15 | DF | Bruno Martins Indi | 31(2) | 0 | 1 | 0 | 1 | 0 | 33(2) | 0 | 3 | 0 |
| 16 | GK | Adam Davies | 4 | 0 | 1 | 0 | 0 | 0 | 5 | 0 | 0 | 0 |
| 17 | DF | Ryan Shawcross (c) | 5 | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 1 | 0 |
| 18 | FW | Mame Biram Diouf | 0(8) | 1 | 0 | 0 | 0 | 0 | 0(8) | 1 | 0 | 0 |
| 19 | FW | Lee Gregory | 22(18) | 6 | 1 | 0 | 0 | 0 | 23(18) | 6 | 1 | 0 |
| 20 | FW | Scott Hogan | 4(9) | 3 | 0 | 0 | 1(1) | 0 | 5(10) | 3 | 0 | 0 |
| 20 | MF | Tashan Oakley-Boothe | 1(1) | 0 | 0 | 0 | 0 | 0 | 1(1) | 0 | 0 | 0 |
| 22 | MF | Sam Clucas | 44 | 11 | 0 | 0 | 2 | 0 | 46 | 11 | 7 | 0 |
| 23 | MF | Thibaud Verlinden | 0(5) | 0 | 0(1) | 0 | 0 | 0 | 0(6) | 0 | 0 | 0 |
| 24 | MF | Jordan Cousins | 15(5) | 0 | 1 | 0 | 2(1) | 0 | 18(6) | 0 | 3 | 0 |
| 25 | MF | Nick Powell | 22(7) | 5 | 1 | 0 | 0 | 0 | 23(7) | 5 | 4 | 1 |
| 26 | FW | Tyrese Campbell | 18(15) | 9 | 1 | 0 | 2(1) | 0 | 21(16) | 9 | 3 | 0 |
| 27 | MF | Badou Ndiaye | 10(3) | 0 | 0 | 0 | 0 | 0 | 10(3) | 0 | 3 | 0 |
| 28 | FW | Julien Ngoy | 0(1) | 0 | 0(1) | 0 | 0 | 0 | 0(2) | 0 | 0 | 0 |
| 31 | MF | Mark Duffy | 1(5) | 0 | 0 | 0 | 1(2) | 0 | 2(7) | 0 | 0 | 0 |
| 32 | GK | Adam Federici | 7 | 0 | 0 | 0 | 2 | 0 | 9 | 0 | 0 | 0 |
| 33 | MF | Lasse Sørensen | 2(4) | 0 | 0 | 0 | 0 | 0 | 2(4) | 0 | 0 | 0 |
| 34 | MF | Jordan Thompson | 8(7) | 0 | 0 | 0 | 0 | 0 | 8(7) | 0 | 2 | 0 |
| 35 | DF | Josh Tymon | 1(1) | 0 | 0 | 0 | 0 | 0 | 1(1) | 0 | 1 | 0 |
| 37 | DF | Nathan Collins | 6(8) | 0 | 1 | 0 | 2 | 0 | 9(8) | 0 | 3 | 1 |
| 38 | MF | Ryan Woods | 8 | 0 | 1 | 0 | 3 | 0 | 12 | 0 | 3 | 0 |
| – | – | Own goals | – | 3 | – | 0 | – | 0 | – | 3 | – | – |

## Transfers
### In

| Date | Pos. | Name | From | Fee |
| 25 June 2019 | MF | Jordan Cousins | Queens Park Rangers | Free |
| 25 June 2019 | GK | Adam Davies | Barnsley | Free |
| 25 June 2019 | FW | Lee Gregory | Millwall | Free |
| 25 June 2019 | DF | Liam Lindsay | Barnsley | £2 million |
| 25 June 2019 | MF | Nick Powell | Wigan Athletic | Free |
| 26 June 2019 | DF | Stephen Ward | Burnley | Free |
| 15 July 2019 | DF | Tommy Smith | Huddersfield Town | Undisclosed |
| 9 August 2019 | DF | Ash Kigbu | Wolfsberger AC | Undisclosed |
| 17 January 2020 | MF | Jordan Thompson | Blackpool | Undisclosed |
| 31 January 2020 | MF | Tashan Oakley-Boothe | Tottenham Hotspur | Undisclosed |

### Out

| Date | Pos. | Name | To | Fee |
| 30 June 2019 | MF | Charlie Adam | Reading | Free |
| 30 June 2019 | MF | Darren Fletcher | Released | Free |
| 30 June 2019 | GK | Jakob Haugaard | Released | Free |
| 30 June 2019 | GK | Máté Deczki | Ajka | Free |
| 30 June 2019 | GK | Daniel Gyollai | Wigan Athletic | Free |
| 30 June 2019 | DF | Moussa Niakate | Released | Free |
| 30 June 2019 | DF | Simranjit Thandi | AEK Larnaca | Free |
| 30 June 2019 | MF | Jacob Twyford | Released | Free |
| 30 June 2019 | MF | Mark Waddington | Barrow | Free |
| 8 July 2019 | DF | Erik Pieters | Burnley | Undisclosed fee |
| 25 July 2019 | MF | Geoff Cameron | Queens Park Rangers | Free |
| 6 August 2019 | FW | Bojan Krkić | Montreal Impact | Mutual consent |
| 7 August 2019 | FW | Saido Berahino | Zulte Waregem | Mutual consent |
| 17 January 2020 | MF | Daniel Jarvis | Wrexham | Undisclosed |
| 24 February 2020 | MF | Giannelli Imbula | Sochi | Free |

### Loans in

| Date from | Pos. | Name | From | Date to |
| 7 August 2019 | FW | Scott Hogan | Aston Villa | 29 January 2020 |
| 8 August 2019 | DF | Cameron Carter-Vickers | Tottenham Hotspur | 2 January 2020 |
| 8 August 2019 | MF | Mark Duffy | Sheffield United | 31 January 2020 |
| 31 January 2020 | DF | James Chester | Aston Villa | End of season |

### Loans out

| Date from | Pos. | Name | To | Date to |
| 17 July 2019 | DF | Josh Tymon | Famalicão | 1 January 2020 |
| 18 July 2019 | DF | Harry Souttar | Fleetwood Town | 30 June 2020 |
| 2 August 2019 | GK | Josef Bursik | Accrington Stanley | 30 June 2020 |
| 8 August 2019 | FW | Benik Afobe | Bristol City | 30 June 2020 |
| 28 August 2019 | DF | Moritz Bauer | Celtic | 30 June 2020 |
| 31 August 2019 | MF | Giannelli Imbula | Lecce | 30 June 2020 |
| 31 August 2019 | DF | Kevin Wimmer | Mouscron | 30 June 2020 |
| 2 September 2019 | FW | Thibaud Verlinden | Bolton Wanderers | 1 January 2020 |
| 10 October 2019 | MF | Adam Porter | Leek Town | January 2020 |
| 24 November 2019 | MF | Ethan Stanton | Market Drayton Town | December 2019 |
| 5 January 2020 | MF | Badou Ndiaye | Trabzonspor | 30 June 2020 |
| 8 January 2020 | MF | Peter Etebo | Getafe | 30 June 2020 |
| 10 January 2020 | FW | Ethon Varian | Nantwich Town | Work experience |
| 16 January 2020 | MF | Tom Sparrow | Kidsgrove Athletic | February 2020 |
| 17 January 2020 | MF | Ryan Woods | Millwall | 30 June 2020 |
| 18 February 2020 | FW | Abdul Sankoh | Kidsgrove Athletic | March 2020 |