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...
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.
In need of a good display after error in midweek but rarely looked comfortable. Passing was poor.
Caught under Auston Trusty's looping header in lead up to home side's leveller. Looked a touch ragged.
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.
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.
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.
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
Unused: Cresswell, Ogbonna, Casey, Scarles, Orford, Marshall.