Match ends, Reading 0, Swansea City 2.
Swansea scored a controversial second goal as they beat Reading to progress to the Carabao Cup fourth round.
Reading's George Evans saw his pass hit the referee, allowing Leroy Fer to play Jordan Ayew in on goal, as the striker cut in from the left and curled home.
Alfie Mawson scored the opener after finding space in the box from a Renato Sanches corner and flicking home.
Reading's best chance fell to winger Adrian Popa, but the Romanian could not hit the target with his effort.
Victory means Swansea have now won 14 of their last 17 League Cup contests against lower league opponents, but their two goals did not come until the second half.
Luciano Narsingh had a goal disallowed in the opening period and the Dutchman had an effort saved by the legs of Reading goalkeeper Anssi Jaakkola.
On-loan Bayern Munich midfielder Sanches impressed on the ball and the returning Wilfried Bony - re-signed from Manchester City for £12m - had a couple of efforts blocked.
Despite Mawson's opener, the home side were very much in the game with seven minutes remaining, before Evans' pass struck referee Andy Davies, allowing the Swans to finish off the tie.
Swansea manager Paul Clement: "We're very pleased to go through. I expected a difficult game because Reading are a good side and were unlucky not to come up last season. We had some difficulty in the first half.
"Second half the set-play changed the rhythm of game and we could make things nice and compact and then we could wait for our moment to counter-attack and that's how the game unfolded."
- 11ObitaSubstituted forBlackettat 62'minutes
- 19BacunaBooked at 42mins
- 25PopaSubstituted forBödvarssonat 74'minutes
- 10SwiftSubstituted forKellyat 54'minutes
- 4van den Berg
- 5van der Hoorn
- 16OlssonBooked at 56mins
- 8FerBooked at 90mins
- 35Renato Sanches
- 11NarsinghSubstituted forFernandezat 70'minutes
- 2BonySubstituted forAbrahamat 81'minutes
- 15RoutledgeSubstituted forJ Ayewat 62'minutes
- 18J Ayew
- Andy Davies
- Shots on Target
Second Half ends, Reading 0, Swansea City 2.
Attempt saved. George Evans (Reading) right footed shot from outside the box is saved in the bottom right corner. Assisted by Leandro Bacuna.
Foul by George Evans (Reading).
Jordan Ayew (Swansea City) wins a free kick in the defensive half.
Attempt saved. Pelle Clement (Reading) right footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Liam Kelly.
Attempt blocked. George Evans (Reading) right footed shot from more than 35 yards is blocked. Assisted by Liam Kelly.
Attempt saved. Tyler Blackett (Reading) header from the centre of the box is saved in the top left corner. Assisted by George Evans with a cross.
Corner, Reading. Conceded by Martin Olsson.
Attempt blocked. Tyler Blackett (Reading) header from the centre of the box is blocked. Assisted by George Evans with a cross.
Roy Beerens (Reading) wins a free kick on the left wing.
Foul by Leroy Fer (Swansea City).
Attempt missed. Leandro Bacuna (Reading) right footed shot from outside the box misses to the right.
Corner, Reading. Conceded by Angel Rangel.
Goal! Reading 0, Swansea City 2. Jordan Ayew (Swansea City) right footed shot from the centre of the box to the bottom right corner. Assisted by Leroy Fer.
Substitution, Swansea City. Tammy Abraham replaces Wilfried Bony.
Attempt missed. Wilfried Bony (Swansea City) right footed shot from very close range misses to the right.
Attempt saved. Jordan Ayew (Swansea City) right footed shot from the right side of the box is saved in the bottom left corner. Assisted by Leroy Fer.
Substitution, Reading. Jón Dadi Bödvarsson replaces Adrian Popa.
Foul by George Evans (Reading).