What more could you ask from a local derby? This game had four goals, one red card, 10 bookings, tension, passion and precisely the right amount of unpleasantness.
Crystal Palace and Millwall will probably compete for different prizes this season but they were both fighting for the same thing here. Each team played as if the pride of south London was at stake, matching each other for character if not for quality.
For 40 minutes the hosts were far superior and went 2-0 ahead. But Dean Moxey was sent off before half-time, Liam Trotter scored the resulting penalty and the game changed. The second half was an exhibition in competitive courage from both Palace and Millwall. The home team, one goal up, one man down, with tiring legs, fought to hang on to their lead. Millwall's task – from behind, against a better team, away from home – was not easy either, but they went about it with just as much spirit.
With 13 minutes left it seemed as if Millwall would not have quite enough, that Palace would hold on for their seventh win from eight games. But Josh Wright's corner was turned in, not entirely advertently, at the far post by Mark Beevers. Darius Henderson even had a chance to win the game for the visitors with three minutes left, but Kenny Jackett was delighted with how his players, initially outclassed, had fought back.
"I was very pleased with my players for coming back from 2-0 down away from home. It's a good achievement," the Millwall manager said. "We played well, we showed plenty of heart and courage and no little quality. I am pleased to say we persevered against a very resilient Palace side. It is never easy against 10 men, or when 2-0 down away from home."
Despite that late equaliser, Dougie Freedman was just as proud of his own players. "We had to stick together," he said. "It is another derby that we are unbeaten in. We refused to be beaten today, it is as simple as that. We are happy with the point."
The game turned five minutes before the break. Henderson's header was instinctively handled off the line by Moxey. Referee Phil Dowd sent him off, Trotter scored the penalty and Millwall had the advantage. Freedman knew that had Moxey left the ball, the game would have gone differently.
"I'm sure if he had his time over again he'd let the ball go into the net. With 11 men we were going to win the game."
It is hard to disagree with his analysis. Palace were excellent until then, playing brisk, imaginative attacking football, the best of it coming through Wilfried Zaha. His imagination and technique are remarkable, and he set up early chances for Glenn Murray and Kagisho Dikgacoi. Millwall's defence only knew one way to stop him, and Zaha took exception to some of his treatment.
"People try and put young Wilfried off his game," Freedman said. "The referees have got to understand that that is part of their game plan, and part of the plan is to try to upset him. It is something he has got to learn to deal with. His performance today was fantastic. His effort, skill and ability to go past people are second to none."
Zaha seemed to tire out Millwall single-handedly, so much so that there was no pressure at all on Mile Jedinak when he had the ball 30 yards out after 35 minutes. The Palace captain accepted the invitation to shoot and put his team ahead. Four minutes later, a free-kick from Owen Garvan was headed in by Damien Delaney at the near post.
"For 40 minutes we were excellent," Freedman said. "We had control of the game, good passing through midfield and creating opportunities from wide. To be 2-0 up was the correct result." It was, but it did not last.
Crystal Palace (4-2-3-1) Speroni: Blake (Ward, 65), Ramage, Delaney, Moxey; Dikgacoi, Jedinak; Zaha, Garvan (Parr, 43), Bolasie (Williams, 82); Murray
Millwall (4-4-2) Forde: Dunne, Shittu, Beevers, Smith; Taylor, Abdou (Wright, 68), Trotter, Malone (Feeney, 56); Wood (Batt, 83), Henderson.
Referee: Phil Dowd.
Man of the match Zaha.
Match rating 9/10.