In-form Crystal Palace were denied a sixth straight Championship victory as visitors Millwall salvaged a draw in an eventful South London derby.
Palace raced into a 2-0 lead through Mile Jedinak's 30-yard drive and Damien Delaney's header shortly after.
Millwall were handed a lifeline when Dean Moxey was dismissed for handling a goalbound shot, with Liam Trotter converting the resulting penalty.
And they made their numerical advantage count when Mark Beevers bundled home.
Victory in the early kick-off at Selhurst Park would have helped Palace climb briefly level with Championship leaders Cardiff.
There were 11 bookings in a typically feisty derby, and Palace could have been reduced to 10 men in the first half when Peter Ramage tripped Darius Henderson but referee Phil Dowd waved play on.
Palace soon went ahead in spectacular fashion when Jedinak collected the ball 35 yards out and unleashed a fierce, swerving shot which flew past David Forde and into the net.
They doubled their advantage when Owen Garvan crossed in a free-kick and Delaney glanced a header past Forde.
But when Moxey punched Henderson's header from underneath the crossbar to earn a red card, Trotter calmly rolled in the penalty.
And Beevers grabbed a point for Millwall when he diverted the ball into the net with his thigh on only his second appearance for the Lions.
Crystal Palace boss Dougie Freedman: "Only Dean can tell you what he was thinking at the time, but it looked instinctive [Dean Moxey's handball on the line for which he was sent off].
"I'm sure if he had his time over again he'd let the ball go into the net and we could have gone on to win the game with 11 men.
"Unfortunately he didn't get too much sympathy at half-time, we had to regroup and be mentally strong as we were a man down.
"I didn't think they opened us up in the second half. I was disappointed to concede from a corner but I'm reasonably happy with a point."
Millwall boss Kenny Jackett: "I was very pleased with my players coming back from two down away from home. It was a good achievement. We played well, showed heart, courage and no little quality.
"The second half was a dominant performance. We persevered against a resilient Palace side and got back into the game.
"It's never easy playing against 10 men. But the goal before half-time and obviously the sending-off galvanised us for what was a dominant second-half performance.
"I believe that's the first goal we have scored from a corner this season, so we need to work on that."
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +5:05
Free kick awarded for an unfair challenge on Jonathan Williams by Liam Trotter. Direct free kick taken by Wilfried Zaha.90:00 +3:27
The ball is delivered by Liam Feeney, save by Julian Speroni.90:00 +3:19
Mark Beevers produces a cross.90:00 +2:26
Corner from the left by-line taken by Jonathan Williams, David Forde makes a comfortable save.90:00 +1:25
Outswinging corner taken right-footed by Josh Wright from the right by-line, Mile Jedinak makes a clearance.90:00 +1:11
Liam Feeney crosses the ball, Jonathan Parr gets a block in.88:28
Shaun Batt challenges Mile Jedinak unfairly and gives away a free kick. Julian Speroni takes the free kick.87:40
Glenn Murray concedes a free kick for a foul on Mark Beevers. David Forde takes the direct free kick.86:57
Direct free kick taken by Jack Smith. Darius Henderson takes a shot. Julian Speroni makes a comfortable save.86:57 Booking
Booking Mile Jedinak receives a yellow card.86:45
Foul by Mile Jedinak on Shaun Batt, free kick awarded.85:37
Right-footed shot by Josh Wright went wide right of the target.83:19
Joel Ward fouled by Shaun Batt, the ref awards a free kick. Direct free kick taken by Julian Speroni.82:23
Free kick taken by Julian Speroni.82:23 Substitution
Substitution Chris Wood goes off and Shaun Batt comes on.82:23
Free kick awarded for a foul by Liam Feeney on Jonathan Parr.81:21
Free kick taken by David Forde.81:21 Substitution
Substitution (Crystal Palace) makes a substitution, with Jonathan Williams coming on for Yannick Bolasie.81:21
Free kick awarded for an unfair challenge on Josh Wright by Wilfried Zaha.
Liam Trotter challenges Glenn Murray unfairly and gives away a free kick. Free kick taken by Kagisho Dikgacoi.79:24
Foul by Glenn Murray on Danny Shittu, free kick awarded. Free kick taken by David Forde.78:47
Corner taken by Yannick Bolasie from the left by-line, clearance made by Chris Wood.78:21
Alan Dunne gives away a free kick for an unfair challenge on Wilfried Zaha. Kagisho Dikgacoi takes the free kick.77:44
Chris Wood concedes a free kick for a foul on Mile Jedinak. Damien Delaney takes the direct free kick.76:30
The assist for the goal came from Josh Wright.76:30 Goal scored
Goal! - Mark Beevers - C Palace 2 - 2 Millwall Mark Beevers gets on the score sheet with a goal from inside the box to the top right corner of the goal. Crystal Palace 2-2 Millwall.76:08
Corner taken right-footed by Josh Wright,72:24
Liam Trotter gives away a free kick for an unfair challenge on Jonathan Parr. Julian Speroni restarts play with the free kick.71:57
Corner from left by-line taken by Josh Wright.71:34
Chris Taylor takes the free kick.71:34 Booking
Booking Yannick Bolasie receives a yellow card.71:11
Unfair challenge on Mark Beevers by Yannick Bolasie results in a free kick.70:16
Shot by Liam Feeney from outside the box goes high over the target.70:03
Alan Dunne crosses the ball, Damien Delaney manages to make a clearance.68:43
Direct free kick taken by Josh Wright.68:43 Booking
Booking Damien Delaney is given a yellow card.68:36
Free kick awarded for an unfair challenge on Liam Trotter by Damien Delaney.67:12
Outswinging corner taken right-footed by Josh Wright from the right by-line, Close range headed effort by Alan Dunne goes wide of the left-hand post.67:12 Substitution
Substitution Josh Wright replaces Nadjim Abdou.66:49
Alan Dunne crosses the ball, clearance made by Wilfried Zaha.64:27 Substitution
Substitution Joel Ward comes on in place of Darcy Blake.63:29
Chris Taylor crosses the ball, save by Julian Speroni.62:52
The ball is crossed by Alan Dunne.58:12
Effort from the edge of the area by Chris Taylor goes wide of the left-hand upright.56:40
Darius Henderson is caught offside. Julian Speroni takes the indirect free kick.55:43 Substitution
Substitution Liam Feeney comes on in place of Scott Malone.54:47 Booking
Booking The referee books Wilfried Zaha for unsporting behaviour.52:38
Scott Malone challenges Wilfried Zaha unfairly and gives away a free kick. Direct free kick taken by Wilfried Zaha.50:13
The ball is swung over by Darcy Blake, clearance by Alan Dunne.49:17
The offside flag is raised against Darius Henderson. Julian Speroni restarts play with the free kick.48:13
The ball is crossed by Danny Shittu, Mile Jedinak makes a clearance.47:44
Unfair challenge on Chris Taylor by Jonathan Parr results in a free kick. Alan Dunne restarts play with the free kick.46:25
Chris Wood takes a shot from just outside the penalty area clears the crossbar.45:01
The second half kicks off.45:00 +4:21 Half time
Half Time The referee calls an end to the first half.45:00 +3:15
The assistant referee flags for offside against Chris Wood. Julian Speroni restarts play with the free kick.45:00 +2:27
Wilfried Zaha crosses the ball, Danny Shittu manages to make a clearance.45:00 +1:28
Nadjim Abdou has shot on goal from just outside the box which goes wide of the right-hand upright.45:00 +1:11
Danny Shittu sends in a cross.45:00 +0:31
Outswinging corner taken by Scott Malone.45:00 +0:15
Chris Taylor takes a shot.44:11
Darius Henderson takes a shot. Save made by Julian Speroni.42:03 Dismissal
Dismissal Dean Moxey shown a red card for deliberate handball.41:49 Substitution
Substitution Owen Garvan goes off and Jonathan Parr comes on.41:49 Goal scored
Goal! - Liam Trotter - C Palace 2 - 1 Millwall Placed penalty scored by Liam Trotter. Crystal Palace 2-1 Millwall.40:46
Handball by Dean Moxey.40:11
The ball is crossed by Chris Taylor.38:30
Assist by Owen Garvan.38:30 Goal scored
Goal! - Damien Delaney - C Palace 2 - 0 Millwall Damien Delaney finds the net with a headed goal from inside the box. Crystal Palace 2-0 Millwall.37:35
Centre by Owen Garvan,37:35 Booking
Booking Danny Shittu receives a yellow card.37:08
Mark Beevers gives away a free kick for an unfair challenge on Glenn Murray.36:32
Free kick awarded for an unfair challenge on Mark Beevers by Wilfried Zaha. Free kick taken by Darius Henderson.34:59
Scott Malone takes a inswinging corner.34:20
Dean Moxey provided the assist for the goal.34:20 Goal scored
Goal! - Mile Jedinak - C Palace 1 - 0 Millwall Mile Jedinak finds the net with a goal from long distance to the bottom right corner of the goal. Crystal Palace 1-0 Millwall.34:11
Centre by Yannick Bolasie.33:23
Short corner taken by Owen Garvan.33:07
Glenn Murray takes a shot. Alan Dunne gets a block in.31:57
Owen Garvan restarts play with the free kick.31:57 Booking
Booking Jack Smith goes into the referee's book.31:36
Jack Smith challenges Wilfried Zaha unfairly and gives away a free kick.29:03
Glenn Murray crosses the ball, Damien Delaney has a headed effort at goal from close in which goes wide left of the target.28:27
Owen Garvan crosses the ball in from the free kick.28:27 Booking
Booking Nadjim Abdou goes into the book.28:17
Foul by Danny Shittu on Yannick Bolasie, free kick awarded.27:21
Centre by Chris Taylor, Headed effort from inside the area by Darius Henderson misses to the right of the target.25:47
Unfair challenge on Julian Speroni by Danny Shittu results in a free kick. Julian Speroni restarts play with the free kick.25:16
Corner taken by Chris Taylor.24:06
Damien Delaney restarts play with the free kick.24:06 Booking
Booking The referee cautions Alan Dunne for unsporting behaviour.23:51
Foul by Alan Dunne on Yannick Bolasie, free kick awarded.22:10
Shot by Mile Jedinak from outside the box goes over the target.21:25
Inswinging corner taken by Yannick Bolasie from the left by-line, Mark Beevers manages to make a clearance.20:32
Darius Henderson gives away a free kick for an unfair challenge on Mile Jedinak. Owen Garvan takes the free kick.18:10
Owen Garvan takes the inswinging corner, clearance by Liam Trotter.17:59
A cross is delivered by Yannick Bolasie, clearance by Scott Malone.16:21
Free kick taken by Owen Garvan.16:21 Booking
Booking Liam Trotter goes into the book for unsporting behaviour.16:13
Foul by Liam Trotter on Dean Moxey, free kick awarded.15:04
Wilfried Zaha crosses the ball, Kagisho Dikgacoi takes a shot. Save by David Forde.14:09
Chris Taylor crosses the ball, save by Julian Speroni.13:32
Free kick awarded for a foul by Mile Jedinak on Liam Trotter. Direct free kick taken by Jack Smith.11:53
Mile Jedinak fouled by Darius Henderson, the ref awards a free kick. Julian Speroni takes the free kick.11:11
Liam Trotter fouled by Mile Jedinak, the ref awards a free kick. Alan Dunne takes the free kick.10:40
The ball is crossed by Alan Dunne, clearance made by Julian Speroni.9:40
Glenn Murray takes a shot. Save made by David Forde.7:14
The ball is crossed by Alan Dunne.6:18
Glenn Murray fouled by Mark Beevers, the ref awards a free kick. Free kick crossed right-footed by Owen Garvan from right channel, clearance by Danny Shittu.4:09 Booking
Booking The referee cautions Dean Moxey for unsporting behaviour.5:18
The ball is swung over by Yannick Bolasie.4:04
Free kick awarded for an unfair challenge on Liam Trotter by Dean Moxey. Direct free kick taken by Jack Smith.1:23
Shot from inside the area by Glenn Murray clears the bar.0:00
The referee gets the match started.
Live data and text provided by our data suppliers