Cardiff rescued a dramatic draw against Reading with two goals in seven minutes to stay within four points of Championship leaders Wolves.
Reading looked set to end the Bluebirds’ four-game winning run after a Callum Paterson own goal and Mo Barrow’s strike put them 2-0 ahead.
But Joe Bennett volleyed in to pull a goal back, setting up a tense finish.
And substitute Lee Tomlin’s shot off the underside of the bar just crept over the line in stoppage time.
Reading captain Paul McShane almost snatched victory for the hosts, but his header in the final seconds struck a post.
It looked like being a forgettable night for Cardiff when manager Neil Warnock was sent to the stands by referee Steve Martin with 13 minutes remaining, having vented his frustration on one occasion too many.
Before Bennett began the comeback for the visitors, Junior Hoilett had seen a header from six yards out bounce down and over the crossbar, while Omar Bogle twice failed to finish off chances in the penalty area.
Substitute Tomlin’s equaliser came after Sol Bamba had headed a corner on to the crossbar as Cardiff piled numbers forward in search of a leveller.
Reading also had chances to add to their two goals in the opening 45 minutes, both of which came from set-pieces, but failed to run away with it.
Despite missing out on a third consecutive win, Jaap Stam’s side stretched their unbeaten run to five matches and climbed to 14th.
Reading manager Jaap Stam:
“It’s very frustrating. We started the game well and in the first half we played some very good football.
“They were always a threat coming forward, but I felt we dealt with the pace and the physique well in the first half. But we always know the opposition will do what they can to get back in the game.
“We should have scored that third goal and maybe the game’s done, but that didn’t happen.
“You need to deal with their threat from crosses and once they got that first goal, the belief was there and it was disappointing not to hold on, especially as we also hit the post before the end.”
Cardiff City manager Neil Warnock:
“I didn’t think we started too badly in the first half, it was just two sloppy goals we conceded. That gave them a bit of a lift and to play with some freedom and we just had to hang in there.
“We felt at half-time there were more goals to be had if we could just have got the next one. I felt it was a cracking game.
“I felt we probably could have had four or five goals in the second half. I have to give the lads credit to rally and show resilience to pull it back from two goals down.”
On being sent to the stands in the second half: “Never have I been sent off for something like this.
“It was a free-kick conceded by Callum Patterson and all I said to fourth official Andy Woolmer was that he had arched his back into the player. Before I know it, the referee is coming over and that’s it.
“I find it amazing – 69 years old and all my years in the game, I’ve never ever been sent off for something so trivial.
“The fans probably enjoyed it. Someone normally gets sent off here at Reading and it was my turn tonight.”
- 19BacunaBooked at 87mins
- 4van den Berg
- 14AlukoSubstituted forPopaat 88′minutes
- 38KellyBooked at 51minsSubstituted forBödvarssonat 83′minutes
- 5Ecuele Manga
- 4MorrisonSubstituted forPeltierat 34′minutes
- 18PatersonSubstituted forTomlinat 79′minutes
- 30BogleBooked at 33minsSubstituted forFeeneyat 81′minutes
- Steve Martin
- Shots on Target
Match ends, Reading 2, Cardiff City 2.
Second Half ends, Reading 2, Cardiff City 2.
Paul McShane (Reading) hits the right post with a header from very close range. Assisted by David Edwards with a cross.
Joey van den Berg (Reading) wins a free kick in the attacking half.
Foul by Lee Tomlin (Cardiff City).
Foul by Yann Kermorgant (Reading).
Nathaniel Mendez-Laing (Cardiff City) wins a free kick in the defensive half.
Goal! Reading 2, Cardiff City 2. Lee Tomlin (Cardiff City) right footed shot from the left side of the six yard box to the high centre of the goal.
Sol Bamba (Cardiff City) hits the bar with a header from the right side of the six yard box. Assisted by Lee Tomlin with a cross.
Attempt missed. David Edwards (Reading) left footed shot from the centre of the box is close, but misses to the right. Assisted by Paul McShane following a corner.
Attempt blocked. Paul McShane (Reading) right footed shot from the right side of the box is blocked. Assisted by Adrian Popa with a cross.
Corner, Reading. Conceded by Neil Etheridge.
Substitution, Reading. Adrian Popa replaces Sone Aluko.
Corner, Reading. Conceded by Lee Peltier.
Leandro Bacuna (Reading) is shown the yellow card for a bad foul.
Foul by Leandro Bacuna (Reading).
David Junior Hoilett (Cardiff City) wins a free kick on the left wing.
Attempt blocked. Joe Ralls (Cardiff City) left footed shot from outside the box is blocked. Assisted by Lee Tomlin.
Substitution, Reading. Jón Dadi Bödvarsson replaces Liam Kelly.
Goal! Reading 2, Cardiff City 1. Joe Bennett (Cardiff City) left footed shot from the centre of the box to the bottom right corner.
Substitution, Cardiff City. Liam Feeney replaces Omar Bogle.
Attempt blocked. Joe Ralls (Cardiff City) left footed shot from outside the box is blocked.
Corner, Cardiff City. Conceded by Liam Moore.
Attempt saved. Lee Tomlin (Cardiff City) right footed shot from outside the box is saved in the centre of the goal. Assisted by Nathaniel Mendez-Laing.
Substitution, Cardiff City. Lee Tomlin replaces Callum Paterson.
Liam Moore (Reading) wins a free kick in the defensive half.
Foul by Callum Paterson (Cardiff City).
Liam Kelly (Reading) wins a free kick in the defensive half.
Foul by Joe Ralls (Cardiff City).
Offside, Cardiff City. Callum Paterson tries a through ball, but David Junior Hoilett is caught offside.
Attempt missed. Joe Bennett (Cardiff City) left footed shot from the centre of the box is too high. Assisted by David Junior Hoilett.
Attempt saved. Sol Bamba (Cardiff City) header from the centre of the box is saved in the centre of the goal. Assisted by Callum Paterson with a cross.
Foul by Modou Barrow (Reading).
Bruno Ecuele Manga (Cardiff City) wins a free kick in the defensive half.
Attempt blocked. Callum Paterson (Cardiff City) left footed shot from the centre of the box is blocked. Assisted by David Junior Hoilett.
Foul by Sone Aluko (Reading).
Loïc Damour (Cardiff City) wins a free kick in the defensive half.
Foul by Paul McShane (Reading).
David Junior Hoilett (Cardiff City) wins a free kick in the defensive half.
Corner, Reading. Conceded by Lee Peltier.