How they rated
DILLON PHILLIPS
Was tested by a long-range shot from Jed Wallace but had barely anything to do in the first half. Made an amazing save to deny Scott Malone in the second half, though.
SEAN MORRISON
Barring one error which led to a Millwall counter, a largely flawless outing once again from the skipper. Chipped in with an excellent header at the end.
CURTIS NELSON
Made a number of crucial interceptions, blocks and headers that went unnoticed. Probably his best game of the season to date.
TOM SANG
Deserved his call-up and took his chance. Had a brilliant outing. Skinned one Millwall player four times before sticking in a perfect cross for Moore, who hit is header over the bar.
MARLON PACK
Another good outing for the midfielder. His crossing is a real weapon this season and did well in the middle of the park, too. His long throw paid dividends for Morrison, too.
JOE RALLS
Just struggled to drive the play forward. Was caught between hitting the channels and running through the midfield. Made one great cross to Moore in the first half, though.
JOEL BAGAN
Looked a little bit nervous at times and made the wrong decision every now and then. Grew as the game went on and City were in the ascendancy.
RUBIN COLWILL
He will have better games than this. Nothing he tried really came off and seemed to be struggling with the relentless pace of Cardiff’s high press. Looked livelier after the break.
KIEFFER MOORE
Chucked his body about against the physical Millwall defence and more than held his own. Missed a glaring chance at the back post in the first half, skimmed a header over the bar, too. Was a big physical presence and it was needed.
MARK HARRIS
A really bright display from the Bluebirds academy graduate. Harried the Lions’ defence and forced a number of errors. Opened up the game running into channels, too.
STARMAN: ADEN FLINT
The two-goal hero again! Incredible how dangerous he is in the opposition box. Had a battle on his hands against a physical Millwall side but came through brilliantly.
SUBSTITUTES
Ryan Giles (on for Harris 63) 9 - What a player Cardiff have on their hands here. Two incredible assists as soon as he came on. Instant impact and changed the game.
Leandro Bacuna (on for Colwill 63) 6 - Did well enough when he came on. Hit one poor pass but injected pace and energy when needed.
James Collins (on for Moore 90) NA
OPPOSITION
Bialkowskil; Romeo, Cooper (Mahoney 73), Ballard, Evans (Smith 70), M. Wallace; Kieftenbeld, Saville; J Wallace, Afobe, Malone. Subs: Long, Thompson, Bradshaw, Smith, Pearce, B Mitchell.
REFEREE
James Linington (Isle of Wight)