Rarely will a point have produced such mixed emotions for Crystal Palace.
Before kick-off a 0-0 draw against Manchester City – halting their run of 18 straight victories – would have been a dream outcome.
But Luka Milivojevic missed a late penalty kick for the Eagles, who also saw Andros Townsend fail to convert a glorious chance in the second half. It could easily have been a better outcome.
You have to say that the spot-kick was a soft one. Wilfried Zaha went down inside the area but any foul by Raheem Sterling seemed to occur outside the box, the winger dropping to the turf inside it when there was hardly any contact.
Milivojevic looked nervous. The Serbian midfielder hurried his run-up – just after Fernandinho had been booked for his protests – and hit it low and straight. Ederson saved with his legs.
Townsend had earlier produced a horrible connection as Zaha, once again producing quality moments against top opposition, put an inviting ball in from the right.
Kevin De Bruyne and Jason Puncheon were stretchered off after the latter’s late foul on the Belgian playmaker. With other injuries in the match it saw an extra 10 minutes of time added-on when you totalled up the two halves.
The pre-match script was that City would have their wicked way with Palace in SE25, collecting a 19th straight Premier League victory in the process.
But the Eagles had ignored the outside noise.
Despite four changes to their starting line-up, it did not stop them executing their gameplan perfectly in the opening 45 minutes.
Palace hunted in packs, surrounding City’s attacking players whenever they got into dangerous positions. And even the loss of Scott Dann – with a suspected major knee injury as he fouled Kevin De Bruyne on the edge of home penalty area – did not weaken their defensive resilience.
Sergio Aguero hit the left post in the 29th minute, his shot clipping off the heel of Jairo Riedewald and came back off the left post with Wayne Hennessey stranded.
Palace’s tactic was to give Wilfried Zaha the chance to use his pace and the winger did everything right as he teed up Andros Townsend, only for his strike to be blocked by Danilo.
Christian Benteke met a Yohan Cabaye corner but could not get anywhere near the right direction on the ball as it went comfortably wide of the target.
City showed their frustration. Initially through De Bruyne’s tetchy response to Leroy Sane not reading the path of his throughball, with the latter booked just before half-time after petulantly kicking the ball away.
Forty-five minutes towards a good result for Palace. But the question remained if a side who have been so imperious would fail to click for the full 90.
Ilkay Gundogan’s one-two with De Bruyne before flashing a strike across the face of Wayne Hennessey’s goal was his last action. City boss Pep Guardiola’s response was to add more attacking options on the pitch as Sterling was brought on for the German midfielder.
It did not help in opening up a spirited and organised Palace defence. Hennessey denied Sane at the back post and also claimed a fairly routine Aguero header.
Townsend missed the clearest shooting opportunity in the 78th minute. Too often the former Tottenham man fails to even hit the target and his latest failure was from 10 yards out.
The ending to the match was pure drama but Milivojevic produced a poor penalty.
This can still be a major point for Palace, and not one that the wider footballing community expected. City might be Premier League champions in May, but they got one of their stiffest tests in South London before 2017 comes to an end.