Jak Alnwick 7
A very assured outing. Produced a couple of decent saves and commanded his area reasonably well.
Mark McGuinness 7
Won everything in the air and was strong in the tackle. A solid performance.
Perry Ng 7
A wonderful cross for the opening goal. Perhaps should have done better for the equaliser, and his set-piece delivery sometimes left a lot to be desired, but a decent showing on the whole.
READ MORE: What Cardiff City's late win over Rotherham United means in Bluebirds' relegation fight
Cedric Kipre 9 - Star man
A colossus at the back all evening. Won everything in the air and read Rotherham's front line very well all. A brilliant performance capped off with a superb goal.
Mahlon Romeo 8
Linked up well with his attacking colleagues on the right-hand side and made some really tidy defensive interventions.
Callum O'Dowda 6
Threw himself about nicely, but couldn't quite influence proceedings. Subbed at half-time with a knock.
Joe Ralls (c) 7
Pulled the strings in the midfield with minimal fuss. Made a couple of really good defensive contributions too.
Ryan Wintle 6
Mopped up well in midfield. Distribution was perhaps lacking at crucial times, but his work-rate was really good and he added steel in the middle of the park.
Jaden Philogene 7
Proved a headache for the Rotherham defence with the ball at his feet. Some really good runs and some nice link-up play with the likes of Etete and Kaba.
Sory Kaba 6
A frustrating night in terms of end product. Missed a penalty and was denied by the keeper early on. But still held up the ball reasonably well for most of the evening. Subbed.
Kion Etete 8
Oozed composure to net the opening goal. Looked determined to win every ball, even when the cause seemed lost. Ran down blind alleys a couple of times and decision-making was perhaps lacking at crucial moments, but a very good performance overall.
Subs
Jack Simpson (on for O'Dowda 45) - Did reasonably well on the left to deal with the threat of Ogbene - 7
Connor Wickham (on for Kaba 71) - Nothing to take issue with, but a largely quiet cameo - 6
Romaine Sawyers (on for Philogene 90) N/A
READ MORE: