Chelsea manager Antonio Conte slammed his side's profligacy in front of goal as their slim chances of a top-four Premier League finish slipped away with a 1-1 draw at Stamford Bridge on Sunday.
Javier Hernandez salvaged a priceless point for West Ham in their battle to avoid the drop after coming on as a substitute.
Reigning champions Chelsea now trail Tottenham and Liverpool by 10 points with just six games left to salvage a place in the Champions League next season.
"We are not clinical. It's a pity because we dominated the game," said Conte.
"We are talking about a draw and that is incredible. I think with this game we can see our season. We create a lot of chances but we cannot take them.
"When this happens regularly and you stay in this position, it means you have problems. Other teams in the league are more clinical. This is the truth."
Chelsea paid tribute to former captain and assistant manager Ray Wilkins, who died aged 61 on Wednesday following a cardiac arrest, before kick-off with a minute's applause.
However, on the field they failed to deliver manager Conte's call to "make a great memory" in Wilkins' honour as a desperately disappointing season continues to fizzle out.
The hosts did go in front in scrappy fashion when captain Cesar Azpilicueta prodded Alvaro Morata's knockdown past Joe Hart.
West Ham game went into the game on the back of a morale-boosting 3-0 win over fellow strugglers Southampton last weekend to ease rising tensions between the board and supporters.
And they look well-set to save themselves from relegation as Hernandez's strike moved David Moyes's men six points above the drop zone in 14th.
Chelsea played a large part in their own downfall as Gary Cahill's wayward header allowed Marko Arnautovic to pull the ball back in the Mexican's path to slam past Thibaut Courtois.
Hart was needed, though, to salvage a point for the visitors as he made brilliant stops from Marcos Alonso and Olivier Giroud in the closing stages to do his hopes of starting for England at the World Cup no harm.
Sixth-placed Arsenal are now just three points adrift of Chelsea as Danny Welbeck scored twice and also set up Pierre-Emerick Aubameyang to continue his fine start to life in the Premier League in a bad-tempered 3-2 win over Southampton.
Arsenal manager Arsene Wenger made seven changes from the side that beat CSKA Moscow 4-1 on Thursday in their Europa League quarter-final, first leg with Champions League qualification by winning that competition now the Gunners' priority.
Another England World Cup hopeful was heavily involved as the injury-ravaged Welbeck netted his first league goals since September.
Shane Long took advantage of a comical mix-up between Petr Cech and Shkodran Mustafi to put the visitors in front early on.
However, Welbeck teed up Aubameyang for his sixth goal in eight games since joining for a club-record fee from Borussia Dortmund and then put Arsenal in front before the break.
"I'm pleased for him because he has been through difficult times," said Wenger. "I have seen him behave (well) when it was really tough so he deserves everything he gets.
"He had every reason to feel sorry for himself, to think the mountain was too big to climb, because it was the right knee, then the left knee and a year out every time.
"People were questioning whether he would come back and I believe what he has done is exceptional."
Charlie Austin came off the bench to level for the Saints 17 minutes from time.
But, after passing up one glorious chance, Welbeck headed home the winner nine minutes from time.
Saints' Jack Stephens and Arsenal midfielder Mohamed Elneny were then both sent-off as Southampton's frustration boiled over in the closing stages and they remain three points adrift of safety.
3 (Aubameyang 28, Welbeck 38, 81) Southampton
2 (Long 17, Austin 73)
1 (Azpilicueta 36) West Ham
1 (Hernandez 73)
table after Sunday's matches (played, won, drawn, lost, goals for, goals against, points):
Man City 32 27 3 2 90 24 84
Man Utd 32 22 5 5 63 25 71
Liverpool 33 19 10 4 75 35 67
Tottenham 32 20 7 5 64 27 67
Chelsea 32 17 6 9 54 31 57
Arsenal 32 16 6 10 61 43 54
Burnley 32 13 10 9 31 28 49
Leicester 32 11 10 11 48 45 43
Everton 33 11 8 14 38 53 41
Newcastle 32 10 8 14 33 41 38
AFC Bournemouth 33 9 11 13 41 53 38
Watford 33 10 7 16 42 59 37
Brighton 32 8 11 13 29 43 35
West Ham 32 8 10 14 40 58 34
Swansea 32 8 8 16 26 45 32
Huddersfield 33 8 8 17 26 54 32
Crystal Palace 33 7 10 16 33 52 31
Southampton 32 5 13 14 31 50 28
Stoke 33 6 9 18 30 63 27
West Brom 33 3 12 18 26 52 21