Match ends, Cardiff City 1, Middlesbrough 1.
Cardiff City fought back to draw with Middlesbrough and deny their former manager Neil Warnock a winning return to the Welsh capital.
Cardiff had the better of a dour first half, but fell behind to the kind of sucker punch they used to inflict on others under Warnock as George Saville headed in from a corner.
The hosts equalised from a corner of their own after the break, with Sheyi Ojo sliding in to convert Kieffer Moore's header.
Ojo shot wide as the Bluebirds searched for a late winner but to no avail, leaving Neil Harris' side still winless at home after four attempts this season.
Middlesbrough drop down to 13th in the Championship table, while Cardiff slip to 15th after seven games each.
The absence of a crowd at Cardiff City Stadium was keenly felt on Warnock's return, denying the 71-year-old what would have been a heartfelt ovation from the supporters of the club he had helped unite during his three-year tenure.
Taking over in October 2016 with Cardiff struggling near the foot of the table, Warnock transformed the team and led them to the Premier League in 2018.
But more than that, he healed the Bluebirds after a fractious period of rebrands, kit colour changes and off-field controversies which had divided the club and its fanbase.
Warnock admitted before this match it would have been an emotional occasion had the fans been able to attend so, at an empty ground, he could concentrate on trying to beat a Cardiff side he helped build.
It was the kind of match for which Warnock has become renowned over the course of his long career: physical, occasionally ill-tempered and with the ball spending most of its time in the air.
On the rare occasions it stayed on the ground, Cardiff created most opportunities, with Moore, Harry Wilson and Josh Murphy all going close.
But in true Warnock style, his team absorbed that pressure and made their one attack of the first half count, with Saville heading in from Marcus Tavernier's corner.
Boro carried more attacking threat after the break, with Tavernier heading the best of their chances wide.
At the other end, Cardiff continued to test goalkeeper Marcus Bettinelli, who made a particularly fine save to deny Will Vaulks from long range.
Fighting fire with fire, the hosts went increasingly direct, lumping a series of long balls into the box for Moore and bringing on another big striker, Robert Glatzel, to add yet more height to their attack.
It did the trick from a corner in the 70th minute as Moore headed firmly towards goal, Glatzel flicked on and Ojo slid in to score from close range.
The Liverpool loanee was close to scoring his and Cardiff's second late on and, after he dragged a shot wide, Moore went close as well.
But it was not to be, Middlesbrough holding firm to ensure Warnock had at least a point to show for his return to Cardiff.
Cardiff City manager Neil Harris:
"I'm disappointed not to win the game, I thought we should have won the game.
"Very tough team to play against because every time they get the ball it gets smashed over your head and you have to run back towards your own goal.
"You can never build any rhythm because of the way they managed the game.
"The two disappointments are that we didn't score more goals with the chances we created and the positions we got ourselves in and, secondly, to concede such a poor goal from a set-piece again.
"That's three times we've conceded from set-plays and four games in a row here we have conceded first at home. That's not acceptable in my changing room."
Middlesbrough manager Neil Warnock:
"I'm disappointed. I thought we did enough to win it.
"I'm disappointed with the goal. It's a foul from the start - Will Vaulks blocks Saville to give Kieffer Moore a free header.
"Referees at this level should be able to see that - it's a disgrace really.
"After last Saturday's offside that wasn't offside, that's four points thrown away this week with obvious bloody decisions."
- 2Osei-TutuSubstituted forBacunaat 67'minutes
- 27OjoSubstituted forHoilettat 86'minutes
- 23H Wilson
- 11MurphySubstituted forGlatzelat 63'minutes
- 10MooreBooked at 28mins
- 10AkpomSubstituted forAssombalongaat 66'minutes
- 3JohnsonSubstituted forSpenceat 77'minutes
- John Brooks
- Shots on Target
Second Half ends, Cardiff City 1, Middlesbrough 1.
Foul by Joe Ralls (Cardiff City).
Sam Morsy (Middlesbrough) wins a free kick in the defensive half.
Attempt missed. Patrick McNair (Middlesbrough) right footed shot from outside the box is high and wide to the right following a set piece situation.
Foul by Harry Wilson (Cardiff City).
Marc Bola (Middlesbrough) wins a free kick on the left wing.
Joe Ralls (Cardiff City) wins a free kick in the defensive half.
Foul by Jonny Howson (Middlesbrough).
Attempt missed. Kieffer Moore (Cardiff City) right footed shot from the centre of the box is close, but misses to the left. Assisted by Leandro Bacuna with a headed pass.
Foul by Robert Glatzel (Cardiff City).
Jonny Howson (Middlesbrough) wins a free kick in the defensive half.
Attempt blocked. Britt Assombalonga (Middlesbrough) right footed shot from the right side of the box is blocked. Assisted by Djed Spence.
Substitution, Cardiff City. David Junior Hoilett replaces Sheyi Ojo.
Attempt missed. Sheyi Ojo (Cardiff City) left footed shot from the left side of the box is close, but misses to the right. Assisted by Kieffer Moore.
Corner, Middlesbrough. Conceded by Will Vaulks.
Attempt blocked. Jonny Howson (Middlesbrough) right footed shot from outside the box is blocked.
Foul by Sean Morrison (Cardiff City).
Britt Assombalonga (Middlesbrough) wins a free kick in the attacking half.
Foul by Sheyi Ojo (Cardiff City).