Leeds United (4-3-3)
22 Joel Robles
Initially good stop from the first Cardiff City goal, but could have perhaps got back on his line quicker. Had to come out quicker to meet the pass for the second goal. Distribution and clearances left a lot to be desired. 5
25 Rasmus Kristensen
Got skinned a few times. Looked shaky on the ball and made far too many errors. Passing was not good enough and didn't offer a good enough option down the right flank. 5
14 Diego Llorente
Perhaps guilty of ball-watching for the two goals. Generally looked a little sloppy on the ball and when he was under pressure from home attackers. 5
21 Pascal Struijk (c)
Miles off it, especially in the first half. Looked half asleep with his decision-making and speed of action. Caught out badly for the first goal and didn't bring any reassurance to proceedings. 4
READ MORE: Pep Guardiola claims Kalvin Phillips can learn from recent fitness struggles
3 Junior Firpo
Looked like someone who had barely played all season. Shaky and lacking confidence on the ball. Gave possession away, weak in the tackle and abandoned his position too often, exposing the team down the left. Improved as Leeds found a footing in the final 20 minutes, especially with his late flick in the box. 5
42 Sam Greenwood
Superb delivery on the cross for Rodrigo's strike. Didn't always have the control Leeds needed in the middle. Put in a lot of tackles and improved after the break. 6
18 Darko Gyabi
One of the few bright spots of the first half. Always happy to take the ball in, some strong runs from deep. 6
10 Crysencio Summerville
Some flashes in the opening 20 minutes, but faded out of the game before he was taken off. 5
7 Brenden Aaronson
Failed to tack Sheyi Ojo for the second goal. Still looks lost with the ball at his feet at times. Needs to be stronger on the ball when challenges come in. 4
30 Joe Gelhardt
Some decent carries from tight areas, but still not lighting up the penalty box as he would like to. 5
29 Wilfried Gnonto
Always happy to take the ball and run at a defender, but didn't find the same space and impact he has in recent weeks. 5
Substitutes
13 Kristoffer Klaesson
2 Luke Ayling
8 Marc Roca
11 Jack Harrison
16 Sonny Perkins (on for Aaronson 86min)
Late change, but big goal. N/A
19 Rodrigo (on for Summerville 59min)
Immediately changed the tone of the attack. Asked so many more questions of the backline with his runs. Lovely header which again underlined his movement. 7
37 Cody Drameh (on for Kristensen 59min)
Solid on his return to Wales. 6
39 Max Wober (on for Gyabi 59min)
Some fears this may not have been the best game to throw him into, but the Austrian rolled up his sleeves and thrived on the tension in midfield. Big tackles, gestures to the crowd and composure on the ball. 7
49 Mateo Joseph (on for Gelhardt 73min)
Very quiet. 5
READ NEXT:
Robbie Savage tips 'vulnerable' Leeds United and Jesse Marsch for Premier League relegation
Who is Georginio Rutter? The Hoffenheim striker linked with £30m move to Leeds United
Leeds United 'open talks' claim as Georginio Rutter linked with £30m transfer
Max Wober 'expressed wish' to join Leeds United as RB Salzburg search for replacement
Michael Skubala outlines Leeds United U21s frustration and discusses his first-team role