Match ends, Stoke City 1, Crystal Palace 2.
Substitute Lee Chung-yong lashed home a sensational late winner for Crystal Palace at Stoke to put the Eagles level on points with fourth-placed Tottenham.
Connor Wickham's powerful penalty gave Palace a first-half lead.
Stoke levelled from the spot when Damien Delaney was punished for handball and Bojan stepped up to dispatch his fourth goal of the season.
With both sides looking for the winner, Lee found it with a 30-yard shot which sailed past Jack Butland on 88 minutes.
Stoke will feel aggrieved not have taken at least a point, but Mark Hughes' side lacked the spark of two weeks earlier when they beat Manchester City at home.
Palace never dominated but were always a threat on the break and they will wake up on Christmas Day level on points with Manchester United and Spurs, who occupy a Champions League spot.
Another victory on the road
Palace have now won 11 of their last 16 away games in the Premier League, and they were once again rewarded for a composed performance against one of the better sides in the league.
Alan Pardew's side knew when to sit back and soak up the Stoke pressure, knowing they had willing outlets in wingers Wilfried Zaha and Yannick Bolasie.
Zaha was a particular threat on the right and provided Palace's opening goal after being clipped by Glenn Whelan in the box.
And it was Bolasie's intervention which eventually led to the spectacular winner for the visitors.
The Congo international raced through but was denied by the impressive Jack Butland in the Stoke goal.
The resulting corner was eventually cleared by Stoke but only as far as Lee, who struck his shot perfectly across Butland and into the top left-hand corner.
Disappointment for Stoke
Stoke missed an opportunity to reaffirm their top-10 credentials and will be disappointed to have only five shots on target from 26 efforts at goal.
There was plenty of patient build-up from the clever Bojan and industrious Xherdan Shaqiri but a lack of finesse when it mattered.
Bojan, in particular, should have done better from eight yards when he shot straight at keeper Wayne Hennessey just after Stoke had equalised and with Palace wobbling.
Marco van Ginkel deflected a cross from the left on to the post, while Glen Johnson and Marko Arnautovic also went close on a frustrating afternoon for the Potters.
Man of the match - Wilfried Zaha (Crystal Palace)
What the managers said
Stoke manager Mark Hughes: "We were the totally dominant side - there is no way we should have lost that game. Crystal Palace were resolute and had the benefit of a penalty and then they were happy to sit back and hit us on the break.
"It's two years running they have come here and nicked the points. If they were honest they would say they didn't deserve to win today.
"We tried to get back into the game, could have converted any number of chances and then the lad scores a wonder goal. He hasn't scored many like that in his career.
"We are playing well enough. On another day we would have won."
Crystal Palace manager Alan Pardew: "Stoke bossed us in the second half but we showed the qualities which are why we are where we are. We have been terrific away from home ever since I have been here.
"We are dangerous when he have the first goal as we have pace on the break. Stoke were due a goal for sure, they put some real quality in and a draw would have been a fair result.
"The goal which won it was brilliant. It will wake all of Asia up tonight. We want to fight for that sixth place."
The stats that matter
- Connor Wickham scored his first goal for Crystal Palace in his ninth game since joining the Eagles in the summer.
- Wickham has now bagged three top-flight goals against Stoke. Against no side has he netted more (also three v Manchester City).
- Wickham's goal was the first Stoke have conceded in the league this season when Ryan Shawcross has been on the pitch (542 mins at time of goal).
- Crystal Palace have netted four penalty goals this season in the Premier League, a haul only Leicester City (7) can better.
- The Potters have kept just two clean sheets in their last nine home league games.
- This is only the third Premier League game this season to see both sides score from the penalty spot; after West Ham v Bournemouth in August and Leicester v Watford in November.
- Lee Chung-yong's goal was his first in the Premier League since April 2011 (for Bolton Wanderers v West Ham).
Stoke face Manchester United at home on Boxing Day, knowing victory would take them to within three points of their manager's former club. Crystal Palace visit 14th-placed Bournemouth on the same day.
- 15Van GinkelSubstituted forAdamat 75'minutes
- 6WhelanSubstituted forWaltersat 65'minutes
- 14AfellayBooked at 68mins
- 22ShaqiriBooked at 52mins
- 11ZahaSubstituted forLeeat 81'minutes
- 42PuncheonSubstituted forMutchat 79'minutes
- 21WickhamSubstituted forChamakhat 64'minutes
- Robert Madley
- Shots on Target
Second Half ends, Stoke City 1, Crystal Palace 2.
Attempt blocked. Charlie Adam (Stoke City) left footed shot from outside the box is blocked.
Attempt blocked. Xherdan Shaqiri (Stoke City) left footed shot from outside the box is blocked. Assisted by Glen Johnson.
Foul by Marko Arnautovic (Stoke City).
Yannick Bolasie (Crystal Palace) wins a free kick in the defensive half.
Bojan (Stoke City) wins a free kick on the left wing.
Foul by Marouane Chamakh (Crystal Palace).
Goal! Stoke City 1, Crystal Palace 2. Lee Chung-yong (Crystal Palace) right footed shot from outside the box to the bottom left corner following a corner.
Attempt blocked. Damien Delaney (Crystal Palace) right footed shot from the left side of the box is blocked.
Attempt missed. Jordon Mutch (Crystal Palace) right footed shot from the centre of the box misses to the left following a corner.
Corner, Crystal Palace. Conceded by Jack Butland.
Attempt saved. Yannick Bolasie (Crystal Palace) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Lee Chung-yong.
Attempt missed. Ryan Shawcross (Stoke City) header from very close range misses to the right. Assisted by Bojan with a cross following a corner.
Corner, Stoke City. Conceded by Joel Ward.
Attempt blocked. Charlie Adam (Stoke City) left footed shot from outside the box is blocked. Assisted by Ibrahim Afellay.
Attempt missed. Xherdan Shaqiri (Stoke City) left footed shot from outside the box is close, but misses to the right from a direct free kick.
Jonathan Walters (Stoke City) wins a free kick in the attacking half.
Foul by Damien Delaney (Crystal Palace).
Substitution, Crystal Palace. Lee Chung-yong replaces Wilfried Zaha.