Oli McBurnie's last-gasp penalty denied West Ham victory over Sheffield United in a chaotic finale at Bramall Lane.
Maxwel Cornet had opened the scoring with his long-awaited first Hammers goal, but Ben Brereton Diaz hit back to level before half-time on his Blades debut.
James Ward-Prowse's spot-kick appeared to have won it 11 minutes from time but McBurnie's own effort deep into stoppage time earn Chris Wilder's men a 2-2 draw.
Here's how David Moyes's side rated at Bramall Lane...
Alphonse Areola 5
Made a fine save to keep out Osula header, but rebound was thrashed in by Brereton Diaz. Gave away the harshest of last-gasp penalties.
Vladimir Coufal 5
Quick thinking with a throw-in made chance for Ings, then a cut-back found the same player in build-up to opener. Sent off late on for two quick-fire yellows, though.
Konstantinos Mavropanos 5
In need of a good display after error in midweek but rarely looked comfortable. Passing was poor.
Kurt Zouma 5
Caught under Auston Trusty's looping header in lead up to home side's leveller. Looked a touch ragged.
Emerson 6
Clever pass played Bowen in early on. A little more stifled than usual and on the end of Rhian Brewster's red card tackle late on.
James-Ward-Prowse 7
Couldn't quite get to loose ball ahead of Brereton Diaz, but made amends by smashing home penalty. Booked.
James Ward-Prowse restores West Ham's lead from the penalty spot 🎯 pic.twitter.com/uEDtJmLPQB
— Football on TNT Sports (@footballontnt) January 21, 2024
Tomas Soucek 6
Good in his own box, with aerial presence handy as Blades looked to take advantage of windy conditions with series of long-throws.
Pablo Fornals 6
Slightly more effective after switching flanks but so indecisive in key areas. Pass which fizzed into Ings to win penalty was much more like it.
Danny Ings 8
West Ham's best player by a mile. Tried in a deeper role, playing off Bowen and was much more involved. Assist was fortuitous, but good work had already made fine Bowen chance. Brilliant turn won spot-kick.
Maxwel Cornet 6
Handed a first league start of the season and at last broke his Hammers duck with first goal since signing in summer of 2022. Still extremely wasteful, though.
Jarrod Bowen 6
Back from ankle problem ahead of schedule to lead the line. Dragged decent opening wide early on.
Substitutes
Ben Johnson (Cornet 70') 6
Sent on in an unfamiliar central midfield role but always gives his running.
Divin Mubama (Ings 90') N/A
Lukasz FabiaÅski (Areola 90') N/A