Swansea City booked their place in the second round of the Carabao Cup and gave Russell Martin his first win as head coach with a dominant showing at Reading.
Set-piece goals from Joel Latibeaudiere - his first for the club - and Ben Cabango had the Swans well in control, before Joel Piroe marked his debut following his arrival from PSV Eindhoven by calmly sweeping home the third.
The winning margin could have been greater as Swansea again showed plenty of encouraging signs as they moved the ball around with great assurance, enjoying the lion’s share of possession and crafting a number of chances.
They had few moments of concern at the other end, and they will be in the hat for Wednesday night’s draw as they made it 16 games unbeaten against Reading in a sequence stretching back to 2008.
There were numerous positives, including an outstanding debut for Dan Williams in midfield, as well as bright showings from new signing Piroe, fellow forward Morgan Whittaker and Kyle Naughton.
There were two debutants in the Swans starting line-up as Williams and Piroe came into the side among five changes from the defeat at Blackburn.
And, against a youthful Reading line-up, the visitors swiftly took control of proceedings and dominated with the ball at their feet.
Yan Dhanda twice saw shots blocked, while Latibeaudiere was just unable to feed the ball inside to Whittaker after another promising attack.
Williams slotted in seamlessly to the midfield, zipping the ball about with captain Matt Grimes, and winning a couple of key challenges before the Swans took an 18th minute lead.
Dhanda swung in a deep delivery from a corner and Latibeaudiere was one of two black shirts virtually unmarked at the far post.
His header was too strong for Reading keeper Luke Southwood to hold, and he could only push the ball high into the net.
After half an hour, the Swans had enjoyed 82 per cent of possession, and Piroe nearly doubled their lead as Southwood just about batted away a strong first-time strike from Jake Bidwell’s pull-back.
Whittaker than drove forward from halfway to get into the Reading area, but his final shot lacked the pace to get beyond the keeper’s low dive.
George Puscas headed over for the Royals just before the break, but the Swans headed back to the dressing room having barely been troubled.
The hosts started the second half with renewed purpose and energy, but Swansea remained in control and nearly extended their lead after a prolonged build-up ended with Whittaker just being unable to meet a Bidwell cross, with Latibeaudiere’s follow-up being saved.
Whittaker then found the top of the net from distance, after a loose pass from Southwood when outside his own area had given the Swansea forward a chance to set his sights.
Piroe then came so close to a wonderful solo goal as he skipped away from three challenges in quick succession to reach the edge of the area; his strike was firm but was parried by Southwood.
But, from the resulting corner, the Swans doubled their lead. Bidwell met Dhanda’s delivery and saw his glancing header cleared off the line, but Cabango was on hand to bundle home the rebound.
Soon after Lincoln Mcfayden and Kyle Joseph came off the bench for their Swansea debuts, with Ryan Manning also coming on as Naughton, Bidwell and Grimes made way.
Joseph signalled his intent straight away, cutting inside from the right and finding the side-netting with a low strike.
It did not get any easier for Reading as they lost a man to injury shortly after making their third and final substitution.
And Piroe rounded off a good night's work as he collected Dhanda's pass, and swept it into the far corner in front of the travelling fans to put the seal on the win.
Reading: Luke Southwood, Tom Holmes (captain), Tom McIntyre (Michael Stickland 46), Dejan Tetek, Mamadi Camara, Kelvin Ehibhatiomhan (Jahmari Clarke 55), Claudio Osorio, Kian Leavy (Ethan Bristow 65), Lynford Sackey, Nelson Abbey, George Puscas.
Unused Substitutes: Conan Boyce-Clarke, Imari Samuels, Benjamin Purcell, Jack Senga.
Swansea City: Steven Benda; Ben Cabango, Brandon Cooper, Joel Latibeaudiere; Kyle Naughton (Kyle Joseph 65), Dan Williams, Yan Dhanda, Matt Grimes (captain) (Ryan Manning 65), Jake Bidwell (Lincoln Mcfayden 65); Morgan Whittaker, Joel Piroe.
Unused Substitutes: Nico Defreitas-Hansen, Jamal Lowe, Liam Cullen, Ben Lloyd.