Swansea City remain in the Premier League relegation zone after they were held by a West Ham side who recorded a third straight goalless draw.
The managerless Swans dominated the first half as Ki Sung-yueng and Andre Ayew missed good chances.
Jack Cork had a spectacular volley saved by Adrian after the break, while Swansea appealed in vain for a penalty for a James Collins handball.
Swansea stay 18th, two points from safety, while West Ham remain eighth.
Relive Swansea's 0-0 draw with West Ham
The Hammers had to settle for a fifth draw from six Premier League games, but the result will have been frustrating for the Swans, who have now won only one of their last 13 league matches.
With Swansea still searching for a successor to sacked manager Garry Monk, caretaker boss Alan Curtis was in charge for a second time.
Despite losing five of their previous six games, his side started with a pace and purpose belying their lowly league standing.
Swansea seemed to have recaptured their passing mastery of old but, with Ki's low drive blocked by Adrian and Ayew firing wide, they were guilty of a familiar failure to make their dominance count.
While Swansea's recent poor form had led to Monk's dismissal, West Ham were enduring a wobble of their own, having failed to win their last six league games.
Both their previous outings had ended 0-0, and Slaven Bilic's side lacked an attacking threat as they spent the majority of the match in their own half.
The Hammers were limited to two long-range attempts at goal from Mauro Zarate, both saved by Lukasz Fabianski.
Although West Ham lacked inspiration in attack, they defended stoutly.
Adrian made a fine save to push away Cork's whistling 20-yard volley, while centre-back Collins made a brave block to deny Ki.
Swansea's players thought the Wales defender had handled the ball, but referee Lee Mason dismissed their protests.
Swansea City caretaker-manager Alan Curtis:
"I thought we played well. In terms of the possession we looked like the kind of Swansea team we've seen over the last couple of seasons, but we possibly lacked a cutting edge up front.
"We said the season started last week for us. At Manchester City we were a lot better, and that today was certainly better than the last few home games.
"I don't think we are a bottom three side. We are there, but in the quality of the last two performances, whoever does come in will be confident they can lift us up the table.
"For now, we have to prepare as normal. We will carry on until the chairman and the board tell us otherwise."
West Ham manager Slaven Bilic:
"It's a good point for us. I want to praise my team because they showed great spirit.
"It was a good collective performance. Exactly what I said when those injuries hit us big time a few weeks ago, the only way we can compensate is with teamwork.
"That is exactly what we've done in the last three games. Three clean sheets and three points. I really want to praise the guys."
Swansea host West Brom on 26 December, with Albion just five points above the Swans, while West Ham are at bottom-of-the-table Aston Villa.
Full Time Match ends, Swansea City 0, West Ham United 0.
90:00 +5:02 Full timeFull Time Second Half ends, Swansea City 0, West Ham United 0.
90:00 +3:43Attempt blocked. Jonjo Shelvey (Swansea City) right footed shot from the centre of the box is blocked. Assisted by Kyle Naughton with a cross.
90:00 +2:09Delay over. They are ready to continue.
90:00 +1:30Delay in match Cheikhou Kouyaté (West Ham United) because of an injury.
90:00 +0:51Attempt missed. Enner Valencia (West Ham United) right footed shot from outside the box misses to the right. Assisted by Cheikhou Kouyaté.
90:00 +0:07Neil Taylor (Swansea City) wins a free kick in the attacking half.
90:00 +0:07Foul by Cheikhou Kouyaté (West Ham United).
88:10Offside, West Ham United. Adrián tries a through ball, but Cheikhou Kouyaté is caught offside.
86:40 BookingBooking Carl Jenkinson (West Ham United) is shown the yellow card.
84:39Attempt missed. James Collins (West Ham United) header from the centre of the box misses to the left. Assisted by Enner Valencia with a cross following a corner.
84:25 SubstitutionSubstitution Substitution, West Ham United. Carl Jenkinson replaces Michail Antonio.
83:27Corner, West Ham United. Conceded by Ashley Williams.
83:23Attempt blocked. James Tomkins (West Ham United) left footed shot from the centre of the box is blocked.
82:20 SubstitutionSubstitution Substitution, Swansea City. Modou Barrow replaces André Ayew.
81:56Offside, West Ham United. Pedro Obiang tries a through ball, but Michail Antonio is caught offside.
81:08Foul by Jonjo Shelvey (Swansea City).
81:08Angelo Ogbonna (West Ham United) wins a free kick in the defensive half.
80:53Attempt blocked. Leon Britton (Swansea City) right footed shot from outside the box is blocked.
80:30Corner, Swansea City. Conceded by Michail Antonio.
Ki Sung-yueng (Swansea City) wins a free kick in the defensive half.
79:06Foul by Michail Antonio (West Ham United).
78:30Attempt missed. Ashley Williams (Swansea City) right footed shot from the centre of the box is too high following a corner.
77:56Corner, Swansea City. Conceded by Aaron Cresswell.
77:54Attempt blocked. Gylfi Sigurdsson (Swansea City) right footed shot from outside the box is blocked.
76:31Corner, West Ham United. Conceded by Ashley Williams.
76:29Attempt blocked. Angelo Ogbonna (West Ham United) right footed shot from the left side of the box is blocked.
75:57Corner, West Ham United. Conceded by Kyle Naughton.
75:12Corner, West Ham United. Conceded by Lukasz Fabianski.
75:09Attempt saved. Enner Valencia (West Ham United) right footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Aaron Cresswell.
74:58Foul by Jonjo Shelvey (Swansea City).
74:58Michail Antonio (West Ham United) wins a free kick in the attacking half.
74:01Attempt missed. Kyle Naughton (Swansea City) right footed shot from outside the box misses to the left. Assisted by Gylfi Sigurdsson.
72:43Delay over. They are ready to continue.
72:22 SubstitutionSubstitution Substitution, Swansea City. Jonjo Shelvey replaces Jack Cork.
72:01 SubstitutionSubstitution Substitution, West Ham United. Pedro Obiang replaces Alexandre Song.
71:50Delay in match Lukasz Fabianski (Swansea City) because of an injury.
71:17Lukasz Fabianski (Swansea City) wins a free kick in the defensive half.
71:17Foul by Michail Antonio (West Ham United).
69:57Offside, Swansea City. Federico Fernández tries a through ball, but Bafétimbi Gomis is caught offside.
68:01 SubstitutionSubstitution Substitution, Swansea City. Kyle Naughton replaces Angel Rangel because of an injury.
65:57Offside, Swansea City. Leon Britton tries a through ball, but Bafétimbi Gomis is caught offside.
62:21Attempt missed. Federico Fernández (Swansea City) right footed shot from outside the box is high and wide to the right following a corner.
62:18Attempt blocked. Gylfi Sigurdsson (Swansea City) right footed shot from the left side of the box is blocked. Assisted by Federico Fernández.
61:18Corner, Swansea City. Conceded by James Collins.
61:17Attempt blocked. Ki Sung-yueng (Swansea City) right footed shot from the centre of the box is blocked. Assisted by Gylfi Sigurdsson.
60:07Attempt missed. Ki Sung-yueng (Swansea City) header from the centre of the box misses to the left following a corner.
60:05Attempt blocked. Federico Fernández (Swansea City) right footed shot from the right side of the box is blocked.
59:37Corner, Swansea City. Conceded by Adrián.
59:35Attempt saved. Jack Cork (Swansea City) right footed shot from outside the box is saved in the top left corner.
59:14 SubstitutionSubstitution Substitution, West Ham United. Enner Valencia replaces Mauro Zárate.
58:44Jack Cork (Swansea City) wins a free kick in the attacking half.
58:44Foul by Aaron Cresswell (West Ham United).
57:16Attempt blocked. Ki Sung-yueng (Swansea City) right footed shot from outside the box is blocked.
57:12Attempt blocked. Gylfi Sigurdsson (Swansea City) right footed shot from outside the box is blocked. Assisted by André Ayew.
56:25Corner, West Ham United. Conceded by Ashley Williams.
56:22Attempt missed. Michail Antonio (West Ham United) right footed shot from outside the box misses to the right. Assisted by Nikica Jelavic.
53:22Neil Taylor (Swansea City) wins a free kick in the defensive half.
53:22Foul by Michail Antonio (West Ham United).
52:00Foul by Gylfi Sigurdsson (Swansea City).
52:00Mark Noble (West Ham United) wins a free kick in the defensive half.
48:10Offside, Swansea City. Jack Cork tries a through ball, but Bafétimbi Gomis is caught offside.
45:00Second Half begins Swansea City 0, West Ham United 0.
45:00 +1:21 Half timeHalf Time First Half ends, Swansea City 0, West Ham United 0.
45:00 +0:48Foul by Federico Fernández (Swansea City).
45:00 +0:48Nikica Jelavic (West Ham United) wins a free kick in the attacking half.
43:34Lukasz Fabianski (Swansea City) wins a free kick in the defensive half.
43:34Foul by Michail Antonio (West Ham United).
40:13Attempt missed. André Ayew (Swansea City) right footed shot from the centre of the box is close, but misses to the right. Assisted by Jack Cork.
40:10Attempt missed. Bafétimbi Gomis (Swansea City) left footed shot from outside the box misses to the right. Assisted by Ki Sung-yueng with a headed pass.
37:36Attempt blocked. Ki Sung-yueng (Swansea City) right footed shot from outside the box is blocked. Assisted by Ashley Williams.
35:03Foul by Gylfi Sigurdsson (Swansea City).
35:03Alexandre Song (West Ham United) wins a free kick in the defensive half.
33:30Corner, West Ham United. Conceded by Federico Fernández.
33:24Attempt blocked. James Collins (West Ham United) left footed shot from the centre of the box is blocked.
32:15Foul by Leon Britton (Swansea City).
32:15Mark Noble (West Ham United) wins a free kick on the right wing.
31:37Corner, West Ham United. Conceded by Lukasz Fabianski.
31:35Attempt missed. Mauro Zárate (West Ham United) right footed shot from outside the box is close, but misses to the right. Assisted by Alexandre Song.
31:03Neil Taylor (Swansea City) wins a free kick in the defensive half.
31:03Foul by Nikica Jelavic (West Ham United).
28:16Attempt missed. James Collins (West Ham United) header from the centre of the box misses to the left. Assisted by Mauro Zárate with a cross following a corner.
27:42Corner, West Ham United. Conceded by Ashley Williams.
26:57Bafétimbi Gomis (Swansea City) wins a free kick in the defensive half.
26:57Foul by Angelo Ogbonna (West Ham United).
25:39Attempt missed. Mark Noble (West Ham United) right footed shot from outside the box misses to the left. Assisted by Nikica Jelavic.
24:36Corner, Swansea City. Conceded by Adrián.
24:34Attempt saved. Ki Sung-yueng (Swansea City) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Bafétimbi Gomis.
22:50Corner, Swansea City. Conceded by James Tomkins.
15:40Offside, Swansea City. Gylfi Sigurdsson tries a through ball, but Jack Cork is caught offside.
14:40Attempt saved. Mauro Zárate (West Ham United) right footed shot from outside the box is saved in the centre of the goal. Assisted by Alexandre Song.
12:57Federico Fernández (Swansea City) wins a free kick in the defensive half.
12:57Foul by Nikica Jelavic (West Ham United).
9:41Corner, West Ham United. Conceded by Angel Rangel.
8:47Attempt missed. André Ayew (Swansea City) header from the centre of the box is just a bit too high. Assisted by Neil Taylor with a cross.
6:58Corner, Swansea City. Conceded by Aaron Cresswell.
6:53Attempt blocked. Gylfi Sigurdsson (Swansea City) right footed shot from outside the box is blocked. Assisted by Ki Sung-yueng.
6:42Attempt blocked. Gylfi Sigurdsson (Swansea City) left footed shot from outside the box is blocked. Assisted by Leon Britton.
5:51Corner, Swansea City. Conceded by Angelo Ogbonna.
4:00Attempt missed. Bafétimbi Gomis (Swansea City) right footed shot from the right side of the box misses to the right. Assisted by Angel Rangel.
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers