Ryan Allsop 7
Made a couple of decent saves from Joao Pedro and a smart low stop off Ken Sema in the first half. Produced a very confident flick past an onrushing attacker late on, too.
Mahlon Romeo 7
Was made to work down the right-hand side all night against the tricky Ismaila Sarr but did well. Made a few trademark driving runs but the odd sloppy pass, too.
Perry Ng 6
Outjumped for Francisco Sierralta's goal but generally good positionally and decent on the ball. Have to accept he will lose the odd aerial duel.
Cedric Kipre 8
Scored his first goal for the club with a bullet header and saved a certain goal when clearing Mario Gaspar's shot off City's line. So consistent.
Niels Nkounkou 6
A couple of trademark marauding runs up that left-hand side, but also a few poor passes played. Unlike Kipre, he just needs to find that consistency.
Ryan Wintle 6
Bailed Cardiff out a couple of times when errant passes were played. Had a tough task in quietening Joao Pedro.
Andy Rinomhota 7
Was everywhere once again. One minute pressing the goalkeeper and the next tackling a Watford player in his own box. Cardiff needed his energy but was brought off when they needed more guile.
Get your brilliant 48-page Wales at the World Cup preview special
Joe Ralls 7
That early assist for Kipre set the tone and he did the defensive, brutish side of the game well. The last vestige of that combative Neil Warnock side and he was needed.
Callum O'Dowda 6
Didn't see as much of him as we have come to expect in recent months. Brought off as Mark Hudson tried to freshen things up.
Mark Harris 6
A difficult evening for him, often chasing long balls and trying to close down the keeper and centre-backs, but couldn't ask much more of him. Taken off for Etete.
Jaden Philogene 8 (star man)
Was impressive how much work he puts in defensively. Almost scored a worldie after skinning two defenders, but Daniel Bachmann pulled off an incredible save. Had another excellent effort whistle past the post in the second half.
Subs
Kion Etete (Harris 68) 6 - A difficult one to assess. Looks so awkward at times and lacked a bit of quality in crucial moments, but was effective at times, too.
Sheyi Ojo (O'Dowda 68) 6 - Sent in one poor cross and should have scored the equaliser when Philogene played him in, but didn't lift it over the onrushing keeper. At least he got in those positions.
Romaine Sawyers (Rinomhota 68) 6 - Used his body well to hold the ball up and played a couple of nice passes when City were trying to get up the pitch.
Max Watters (Romeo 90) N/A
READ NEXT
- Get your brilliant 48-page Wales at the World Cup preview special - it's a must-have historical souvenir
- Mark Hudson expecting to oversee Cardiff City's World Cup break as coach appointment imminent
- Cardiff City player ratings as Aston Villa loanee changes the game against Rotherham
- Cardiff City news as duo a doubt for Rotherham clash and Isaak Davies timeframe given
- Mark Hudson holds talks with Cardiff City chiefs about his long-term future as manager