Crystal Palace player ratings as Jean-Philippe Mateta and Michael Olise down Millwall
Jack Butland - 4
Had a howler for the opening goal where he floundered before a weak pass was intercepted by Benik Afobe and passed into the net. Was never going to be easy for him to regain confidence after that moment, but thankfully he wasn't seriously tested by Millwall.
Tyrick Mitchell - 6
Wasn't able to have too much of an effect on the game in the first 45 minutes but started the second half excellently with two great passes early on that started the move for the equaliser.
Joachim Andersen - 6
Despite referee Anthony Taylor doing his best to allow every foul on the centre-back to go unpunished, the Danish international held his own and went through the wars to help Palace to victory.
Marc Guehi - 6
Can sometimes be too content to pass the ball around the back when more incisiveness would be better. Quietly went about his business and barely let anything past him in the second half as Palace sought to close out the game.
Joel Ward - 4
One of the players who looked up for the fight from the first whistle. Didn't always come off for him though and was caught out a couple of times in the second half with Palace leading.
Jeffrey Schlupp - 4
Struggled to get any kind of foothold in the game from midfield. Was booked in the first period and had some sloppy passes that almost cost Palace dearly.
Will Hughes - 6
Asked to play in the holding midfield role which doesn't suit him all too well. Still passed well but missed his ability to step forward with the ball out of midfield and get Palace up the pitch.
Conor Gallagher - 6
A forgettable first 45 minutes for the England international who looked off the pace like many of his teammates did during the first half after receiving medical attention for a stray elbow to the face. Looked much better in the second half - as did most of the team - when he had the ball at his feet and could try and get Palace up the pitch.
Ebere Eze - 6
Grew into the game but didn't manage to have as much of an impact as he would have liked. Was brought off in the second half after more valuable minutes with the Eagles having turned the game around.
Jean-Philippe Mateta - 6
A clunky first half from the Frenchman who could barely get a touch right. Was offside for the equaliser but with no VAR he went unpunished.
Managed to take his big moment when it mattered most, nodding past George Long after Olise's chipped ball into the box.
Michael Olise - 8
Very few chances to get run at his man in the first half. The one time he had space to do so he almost set Eze free in the box but Mateta's involvement brought an end to the move.
Got the equaliser moments into the second half with a brilliant, curled finish into the corner off the post. Almost repeated the trick moments later but hit the post. Not to matter, as he then put in a great cross for Mateta to put Palace ahead.
Christian Benteke (for Eze 63') - 5
Didn't look like he wanted to get past a jog after coming on for the last half an hour.
Odsonne Edouard (for Mateta 63') - 5
Broke into the box with 20 minutes remaining in the game but made the wrong decision to try and pass instead of shoot.
Luka Milivojevic (for Hughes 81') - N/A
Jairo Riedewlad (for Schlupp 87') - N/A
Nathaniel Clyne (for Olise 87') - N/A