Jak Alnwick 5
Forced into a flurry of early saves from Josh Bowler and responded well. Not much he could do about either goal.
Perry Ng 5
Was solid at both ends of the pitch. Looked to get forward and did well to push Kane Kesler-Hayden back. Had a headed effort cleared off the line.
Dimitrios Goutas 4
A fairly accomplished outing from the Greek until the last minute or so. Horrible error to allow Osmajic in for the visitors' second. Way too lax.
Calum Chambers 4
Was barged off the ball by Riis on one occasion which led to a chance and turned the ball into his own net after a deflected shot became uncomfortable for him.
Joel Bagan 4
Struggled early against Bowler, of whom he wouldn't have seen much owing to his loan to Belgium last year, and allowed a couple of shots off. Grew into it.
Alex Robertson 6
The one who looked to drive the play forward from midfield. His game intelligence in defence is also often underrated but was very much on show. Set pieces need work.
Andy Rinomhota 6
Brought back into the starting XI and did a tremendous job in the middle. Broke up play and kept it simple when in possession - his range is not his strong point. Sign up to our daily Cardiff City newsletter here.
Yakou Meite 5
Got himself in dangerous positions and was a willing runner. Forced Freddie Woodman into one or two decent saves and had one great effort cleared off the line.
Rubin Colwill 5
Showed one or two touches of pure class as you'd expect. Played some crafty passes and got City moving as he always does but couldn't produce that magic touch.
WHATSAPP: Join the Cardiff City breaking news and top stories WhatsApp community
Callum O'Dowda 6
Emptied the tank once again. Never lets you down and is a real asset high up on that left-hand side. Put in one or two decent crosses which weren't finished off.
Callum Robinson 5
A game of few opportunities for the forward but played in Meite with a terrific through-ball in the first half.
Subs
Anwar El Ghazi (Bagan 57) 6 (star man) - Made a real impact off the bench and got Cardiff's attack motoring. One encouraging sign, at least.
Joe Ralls (Rinomhota 57) 4 - Uncharacteristically poor with the ball tonight, misplaced passes and tried to rush things. Booked for a poor challenge.
Chris Willock (Meite 57) 6 - Like El Ghazi, did well when he came on and let a few shots go.
Michael Reindorf (Robinson 68) 5 - Still very raw and a couple of dicey touches, but showed willing and a boldness of youth when afforded a couple of opportunities.