Match ends, Reading 2, Cardiff City 2.
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 Paterson 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."
Line-ups
Reading
Formation 4-2-3-1
- 1Mannone
- 19BacunaBooked at 87mins
- 5McShane
- 6Moore
- 2Gunter
- 4van den Berg
- 16Edwards
- 14AlukoSubstituted forPopaat 88'minutes
- 38KellyBooked at 51minsSubstituted forBödvarssonat 83'minutes
- 17Barrow
- 18Kermorgant
Substitutes
- 7Beerens
- 20Ilori
- 22Clement
- 23Bödvarsson
- 24Blackett
- 25Popa
- 31Jaakkola
Cardiff
Formation 3-4-2-1
- 25Etheridge
- 5Ecuele Manga
- 4MorrisonSubstituted forPeltierat 34'minutes
- 14Bamba
- 18PatersonSubstituted forTomlinat 79'minutes
- 20Damour
- 8Ralls
- 3Bennett
- 33Hoilett
- 19Mendez-Laing
- 30BogleBooked at 33minsSubstituted forFeeneyat 81'minutes
Substitutes
- 2Peltier
- 7Tomlin
- 12Feeney
- 13Pilkington
- 15Halford
- 16Connolly
- 28Murphy
- Referee:
- Steve Martin
- Attendance:
- 16,670
Match Stats
- Possession
- Home52%
- Away48%
- Shots
- Home10
- Away15
- Shots on Target
- Home2
- Away8
- Corners
- Home8
- Away3
- Fouls
- Home10
- Away12
Live Text
Post update
Full Time
Second Half ends, Reading 2, Cardiff City 2.
Post update
Paul McShane (Reading) hits the right post with a header from very close range. Assisted by David Edwards with a cross.
Post update
Joey van den Berg (Reading) wins a free kick in the attacking half.
Post update
Foul by Lee Tomlin (Cardiff City).
Post update
Foul by Yann Kermorgant (Reading).
Post update
Nathaniel Mendez-Laing (Cardiff City) wins a free kick in the defensive half.
Goal!
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.
Post update
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.
Post update
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.
Post update
Attempt blocked. Paul McShane (Reading) right footed shot from the right side of the box is blocked. Assisted by Adrian Popa with a cross.
Post update
Corner, Reading. Conceded by Neil Etheridge.
Substitution
Substitution, Reading. Adrian Popa replaces Sone Aluko.
Post update
Corner, Reading. Conceded by Lee Peltier.
Booking
Leandro Bacuna (Reading) is shown the yellow card for a bad foul.
Post update
Foul by Leandro Bacuna (Reading).
Post update
David Junior Hoilett (Cardiff City) wins a free kick on the left wing.
Post update
Attempt blocked. Joe Ralls (Cardiff City) left footed shot from outside the box is blocked. Assisted by Lee Tomlin.
Substitution
Substitution, Reading. Jón Dadi Bödvarsson replaces Liam Kelly.
Goal!
Goal! Reading 2, Cardiff City 1. Joe Bennett (Cardiff City) left footed shot from the centre of the box to the bottom right corner.