Cardiff City earned a hard-fought point in a 2-2 draw against promotion-chasing Middlesbrough at the Riverside Stadium, after a superb first-half display was followed by a second-half collapse. Jack Moylan and Ollie Tanner scored stunning goals to put the Bluebirds in control, only for Tommy Conway and Will Lankshear to bring the hosts level after the break. Gabriel Osho's late red card made the closing stages even more uncomfortable for Brian Barry-Murphy's side.
Forward line impresses in first-half display
There were some excellent individual performances, particularly from Cardiff's forward line, but others struggled as Middlesbrough mounted their second-half comeback. Here are the player ratings from the Riverside.
Nathan Trott was rated 8, making a flurry of hugely important saves to keep Cardiff in the contest as Middlesbrough threatened throughout the afternoon. He could do little about either goal and produced several important interventions to help the Bluebirds hold on for a point.
Ronan Kpakio earned a 7, producing his most confident display in some time, showing greater assurance against a dangerous Middlesbrough attack. He worked hard defensively before being replaced in the second half as Cardiff looked to freshen things up.
Defensive solidity and a costly red card
Krystian Bielik was rated 8 and named star man, excellent on his return to the starting line-up, bringing composure and authority to the heart of Cardiff's defence. He made important interventions as Middlesbrough threatened and later moved into midfield as the Bluebirds attempted to stem the tide.
Gabriel Osho was rated 5, having been relatively solid in a difficult afternoon's work before allowing himself to be drawn into a battle with Will Lankshear that ultimately proved costly. His rash challenge on the Middlesbrough striker earned him a straight red card in the 83rd minute, leaving Cardiff to cling on with 10 men. Naive from an experienced player.
Joel Bagan was rated 7, largely very good, defending diligently and producing some important interventions as Middlesbrough pushed for a winner. He might have closed Lankshear down more quickly before the striker's equaliser, but his late defensive work helped Cardiff secure the draw.
Midfield control and attacking threats
Alex Robertson was rated 7, donning the captain's armband and continuing his very good recent form with another composed display in midfield. He helped Cardiff establish control during an excellent first half and produced a crucial block to deny Amario Cozier-Duberry before the break.
Joel Colwill was rated 8, having an excellent first half, linking play intelligently and helping Cardiff get on the front foot against the promotion chasers. His withdrawal at half-time was followed by a noticeable loss of control in midfield, with the Bluebirds struggling to contain Middlesbrough after the interval.
Cian Ashford was rated 8, a top performance from the young forward, whose defensive work and ability to retain possession stood out throughout his time on the pitch. He worked tirelessly to disrupt Middlesbrough's rhythm and showed his quality in possession, including a lovely reverse pass that almost sent Moylan through for a second goal.
Ollie Tanner was rated 8, scoring a stunning goal on the stroke of half-time, cutting inside before firing an unstoppable effort into the top corner. He was a constant threat on the right, providing pace and direct running before making way for Isaak Davies late on.
Jack Moylan was rated 8, continuing his marvellous form in front of goal with a brilliant individual effort to open the scoring, taking his chance superbly after cutting inside the Middlesbrough defence. He then turned provider for Tanner's spectacular strike and almost grabbed another after the break, only to be denied when one-on-one with Radek Vitek.
Chris Willock was rated 7, having a wonderful first half, offering Cardiff an intelligent outlet in attack and helping the visitors make the most of their counter-attacking opportunities. He faded a little after the break as Middlesbrough took control and was replaced by Will Fish in the 64th minute.
Substitutes struggle and offer late relief
David Turnbull, on for J. Colwill at 46 minutes, was rated 4, having a hand in both Middlesbrough goals and struggling to impose himself after coming on at half-time. His giveaway in midfield led directly to Lankshear's equaliser, making it a difficult afternoon for the midfielder.
Will Fish, on for Willock at 64 minutes, was rated 6, having a big old battle with Middlesbrough's forwards after entering the action during a difficult spell for Cardiff. He held his own as the hosts piled on the pressure and helped the visitors see out the closing stages.
Calum Scanlon, on for Kpakio at 74 minutes, was rated 6, looking decent after his introduction, bringing fresh legs to Cardiff's defence as Middlesbrough searched for a late winner. He also won a vital free-kick in the closing stages to relieve some of the pressure on the visitors.
Isaak Davies, on for Tanner at 79 minutes, was rated 7, a bright cameo from the forward, who brought energy and willingness to run at the Middlesbrough defence. His touch let him down when a promising opening presented itself, but he looked sharp and helped Cardiff occupy the hosts during the closing stages.