Crystal Palace's push towards the Premier League's top four stalled as a much-changed Swansea side ground out a point at Selhurst Park.
Swans caretaker boss Alan Curtis saw his side secure a third clean sheet in a row to remain above the bottom three.
Palace defender Brede Hangeland's flicked header early in the second half was well saved by Lukasz Fabianski, who later denied Patrick Bamford.
Gylfi Sigurdsson almost won it for Swansea, but his free-kick was saved.
Palace had moved to within reach of the Champions League qualification places by scoring nine goals in their four matches before Christmas.
Alan Pardew's side, though, have been held to goalless draws in each of their two festive fixtures so far.
Pardew gave Marouane Chamakh his first start of the season, with the former Arsenal striker bidding to regain full match fitness after a thigh problem.
Chamakh, though, made little impact, with Palace's best chances coming once Bamford came on as a half-time substitute.
Bamford, on loan from Chelsea, had Palace's clearest chance, but shot straight at Fabianski after James McArthur's pass had ricocheted into his path.
The biggest disappointment for Pardew, though, was a soft first-half yellow card for winger Yohan Cabaye, who will be suspended for next weekend's Premier League meeting with Chelsea.
Curtis made eight changes to the side that beat West Brom 1-0 on Boxing Day in an attempt to keep his players fresh.
His line-up included three men - centre-back Jordi Amat, midfielder Matt Grimes and forward Marvin Emnes - who had not played a single minute of Premier League football all season.
It was one of the three players who retained his place who proved the key, though, with captain Ashley Williams outstanding in central defence.
Curtis' side restricted Palace to just two shots on target, and almost snatched a second 1-0 win in three days, with home keeper Wayne Hennessey getting across well to push aside Sigurdsson's stoppage-time free-kick.
Crystal Palace manager Alan Pardew: "I just thought it was a poor decision to book Cabaye. We've lost him for a key game. Fans pay a lot of money to see players like that, and the referee's taken him out of the game.
"A mistimed challenge is not a yellow card. It's a deliberate tackle to stop someone progressing down the pitch. Brede Hangeland escapes a booking for a far worse challenge. We want great players on the pitch. Stop handing out yellow cards."
Swansea caretaker manager Alan Curtis: "It was an excellent point against a very good Crystal Palace team. They showed today why they are where they are in the table. We're unbeaten in three with three clean sheets. That's a huge improvement on where we've been of late.
"I thought Ashley was brilliant. He's been the rock of the side for any number of seasons. Ashley epitomised the spirit of the team."
Full Time Match ends, Crystal Palace 0, Swansea City 0.
90:00 +4:23 Full timeFull Time Second Half ends, Crystal Palace 0, Swansea City 0.
90:00 +3:45Offside, Crystal Palace. Brede Hangeland tries a through ball, but Mile Jedinak is caught offside.
90:00 +3:18Corner, Crystal Palace. Conceded by Kyle Naughton.
90:00 +1:54Attempt saved. Gylfi Sigurdsson (Swansea City) right footed shot from outside the box is saved in the bottom right corner.
90:00 +1:00 BookingBooking Brede Hangeland (Crystal Palace) is shown the yellow card for a bad foul.
90:00 +0:56Foul by Brede Hangeland (Crystal Palace).
90:00 +0:56Bafétimbi Gomis (Swansea City) wins a free kick in the attacking half.
90:00 +0:32Attempt saved. Gylfi Sigurdsson (Swansea City) left footed shot from outside the box is saved in the bottom left corner. Assisted by Matt Grimes.
88:46Attempt missed. Wilfried Zaha (Crystal Palace) right footed shot from the left side of the box is close, but misses to the right. Assisted by Yohan Cabaye.
88:16Attempt blocked. Yohan Cabaye (Crystal Palace) right footed shot from outside the box is blocked.
87:23Yohan Cabaye (Crystal Palace) wins a free kick in the attacking half.
87:23Foul by Matt Grimes (Swansea City).
86:18Corner, Crystal Palace. Conceded by Ashley Williams.
85:15Foul by Wilfried Zaha (Crystal Palace).
85:15Matt Grimes (Swansea City) wins a free kick on the left wing.
83:51Corner, Crystal Palace. Conceded by Ki Sung-yueng.
81:24Attempt missed. Jordon Mutch (Crystal Palace) right footed shot from outside the box misses to the right. Assisted by Mile Jedinak.
80:33Corner, Crystal Palace. Conceded by Neil Taylor.
77:18Yohan Cabaye (Crystal Palace) wins a free kick in the attacking half.
Foul by Jack Cork (Swansea City).
76:35 SubstitutionSubstitution Substitution, Swansea City. Kyle Bartley replaces Jordi Amat because of an injury.
74:46 SubstitutionSubstitution Substitution, Crystal Palace. Jordon Mutch replaces James McArthur.
74:02Foul by Lee Chung-yong (Crystal Palace).
74:02Modou Barrow (Swansea City) wins a free kick on the right wing.
73:25Attempt saved. Patrick Bamford (Crystal Palace) right footed shot from the centre of the box is saved in the centre of the goal.
73:24Attempt blocked. James McArthur (Crystal Palace) right footed shot from outside the box is blocked.
71:01Offside, Swansea City. Jack Cork tries a through ball, but Bafétimbi Gomis is caught offside.
70:23 SubstitutionSubstitution Substitution, Crystal Palace. Lee Chung-yong replaces Jason Puncheon.
69:59Foul by Jason Puncheon (Crystal Palace).
69:59Kyle Naughton (Swansea City) wins a free kick in the defensive half.
67:07Foul by Yohan Cabaye (Crystal Palace).
67:07Neil Taylor (Swansea City) wins a free kick on the left wing.
64:56 BookingBooking Ki Sung-yueng (Swansea City) is shown the yellow card.
64:46James McArthur (Crystal Palace) wins a free kick in the defensive half.
64:46Foul by Gylfi Sigurdsson (Swansea City).
63:15Attempt blocked. Matt Grimes (Swansea City) left footed shot from outside the box is blocked.
62:48Corner, Swansea City. Conceded by Joel Ward.
62:04Corner, Swansea City. Conceded by Wayne Hennessey.
62:02Attempt saved. Modou Barrow (Swansea City) left footed shot from outside the box is saved in the top centre of the goal. Assisted by Kyle Naughton.
58:59 BookingBooking Neil Taylor (Swansea City) is shown the yellow card for a bad foul.
58:38Wilfried Zaha (Crystal Palace) wins a free kick on the right wing.
58:38Foul by Neil Taylor (Swansea City).
56:39 BookingBooking Pape Souaré (Crystal Palace) is shown the yellow card for a bad foul.
56:35Foul by Pape Souaré (Crystal Palace).
56:35Modou Barrow (Swansea City) wins a free kick on the right wing.
55:35 SubstitutionSubstitution Substitution, Swansea City. Gylfi Sigurdsson replaces Marvin Emnes.
55:16 SubstitutionSubstitution Substitution, Swansea City. Ki Sung-yueng replaces Jonjo Shelvey.
51:26Brede Hangeland (Crystal Palace) wins a free kick in the defensive half.
51:26Foul by Bafétimbi Gomis (Swansea City).
50:59Attempt missed. Scott Dann (Crystal Palace) header from the centre of the box is too high. Assisted by Yohan Cabaye with a cross following a corner.
50:32Corner, Crystal Palace. Conceded by Ashley Williams.
49:33Corner, Swansea City. Conceded by Mile Jedinak.
48:12Attempt blocked. Bafétimbi Gomis (Swansea City) left footed shot from the right side of the box is blocked.
47:33Offside, Crystal Palace. Brede Hangeland tries a through ball, but Scott Dann is caught offside.
47:32Attempt saved. Brede Hangeland (Crystal Palace) header from the centre of the box is saved in the bottom right corner. Assisted by Yohan Cabaye with a cross.
46:49Jason Puncheon (Crystal Palace) wins a free kick on the left wing.
46:49Foul by Matt Grimes (Swansea City).
45:35Foul by Scott Dann (Crystal Palace).
45:35Modou Barrow (Swansea City) wins a free kick on the left wing.
45:00Second Half begins Crystal Palace 0, Swansea City 0.
45:00 SubstitutionSubstitution Substitution, Crystal Palace. Patrick Bamford replaces Marouane Chamakh.
45:00 +1:09 Half timeHalf Time First Half ends, Crystal Palace 0, Swansea City 0.
44:52Yohan Cabaye (Crystal Palace) wins a free kick on the left wing.
44:52Foul by Jordi Amat (Swansea City).
42:42Wilfried Zaha (Crystal Palace) wins a free kick on the left wing.
42:42Foul by Kyle Naughton (Swansea City).
42:00Attempt missed. Yohan Cabaye (Crystal Palace) right footed shot from outside the box is high and wide to the right. Assisted by Pape Souaré.
38:44Wilfried Zaha (Crystal Palace) wins a free kick in the defensive half.
38:44Foul by Neil Taylor (Swansea City).
37:58Foul by Brede Hangeland (Crystal Palace).
37:58Bafétimbi Gomis (Swansea City) wins a free kick in the defensive half.
36:25Brede Hangeland (Crystal Palace) wins a free kick in the defensive half.
36:25Foul by Bafétimbi Gomis (Swansea City).
35:12Foul by Mile Jedinak (Crystal Palace).
35:12Jonjo Shelvey (Swansea City) wins a free kick in the defensive half.
33:04 BookingBooking Yohan Cabaye (Crystal Palace) is shown the yellow card for a bad foul.
32:56Foul by Yohan Cabaye (Crystal Palace).
32:56Jack Cork (Swansea City) wins a free kick in the defensive half.
32:11Marouane Chamakh (Crystal Palace) wins a free kick in the defensive half.
32:11Foul by Kyle Naughton (Swansea City).
29:04Attempt missed. Mile Jedinak (Crystal Palace) header from the centre of the box misses to the right. Assisted by Yohan Cabaye with a cross following a set piece situation.
27:57Hand ball by Kyle Naughton (Swansea City).
26:24Offside, Crystal Palace. Marouane Chamakh tries a through ball, but Pape Souaré is caught offside.
23:25Corner, Crystal Palace. Conceded by Kyle Naughton.
20:55Wilfried Zaha (Crystal Palace) wins a free kick on the right wing.
20:55Foul by Matt Grimes (Swansea City).
19:32Yohan Cabaye (Crystal Palace) wins a free kick in the defensive half.
19:32Foul by Jack Cork (Swansea City).
18:05Attempt missed. Yohan Cabaye (Crystal Palace) right footed shot from the right side of the box is too high. Assisted by Scott Dann.
17:35Corner, Crystal Palace. Conceded by Jordi Amat.
14:12Offside, Crystal Palace. Pape Souaré tries a through ball, but Marouane Chamakh is caught offside.
12:06Wilfried Zaha (Crystal Palace) wins a free kick on the left wing.
12:06Foul by Kyle Naughton (Swansea City).
11:26Corner, Swansea City. Conceded by Joel Ward.
5:49Foul by Marouane Chamakh (Crystal Palace).
5:49Jack Cork (Swansea City) wins a free kick in the defensive half.
3:05Pape Souaré (Crystal Palace) wins a free kick on the left wing.
3:05Foul by Jonjo Shelvey (Swansea City).
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers