85 - Ruddy rises to catch a deflected cross from the right.
85 - Superb, John Ruddy. The City goalkeeper spreads himself to make an outstanding save after Healey weaves his way into the box. Rebound then fired well over.
86 - Connolly off, John on for Cardiff. Their final change.
86 - Oliveira with a foul near the Cardiff box. Free-kick given.
87 - Bennett told to get ready. He'll be on for Wes, almost certainly.
88 - City's throw near the Cardiff corner-flag for now. Hooked out for another.
88 - That change confirmed. Hoolahan off, Bennett on. Have and hold.
88 - Cardiff win it back. Their throw.
90 - Ruddy climbs. Takes a cross from the left.
90 - Oliveira wins a corner. Just what City need.
90 - Five minutes to be added. No surprise, really. About right.
90 - Free-kick to Cardiff near their corner-flag. Thumped long by their goalkeeper.
90 - Hacked out for a throw. This will be launched, as per.
90 - Thumped away. Josh puts out for another throw.
90 - Hurled long. Bundled away. City scrapping. Oliveira can't hold up.
90 - Out for another throw, on the left this time.
90 - Headed away. Out to the wing. Sent back in. Bamba climbs. Heads down. Ruddy takes and holds before kicking long.
90 - McGregor takes at the other end and thumps forward himself. Pinto does brilliantly to clear to halfway.
90 - Through to Ruddy. More time ticks by.
FULL-TIME | Cardiff 0-1 City.
City edge their way to a gritty, ugly win at Cardiff.
As good a win as any this season, for me. Not pretty but it got the job done. OTBC!
Thanks for joining me today. We'll have a report of the game and reaction to follow on canaries.co.uk, then be back on Tuesday night for the trip to Wigan! See you then!