Sam Allardyce's side enjoyed a large share of the early position but rarely tested Jason Steele in the opening exchanges.
Lukas Jutkiewicz tested the Irons defence twice in a minute as his powerful shot was first blocked by Abdoulaye Faye before heading over the bar from close range.
West Ham improved as the half went on but were denied a penalty after claims of a handball against Matthew Bates were turned down.
The Irons returned with added impetus in the second period and were rewarded for their efforts in the 66th minute.
George McCartney delivered a dangerous cross into the box and Faye was on hand to give West Ham the lead.
Faye's defensive partner James Tomkins almost added a second just minutes later but his header was saved by Steele.
West Ham were made to pay for their missed chances in the 84th minute as substitute Bart Ogbeche's curling effort from outside the area drew the sides level.
Middlesbrough almost took all three points in the closing stages as Ogbeche's effort was cleared off the line in stoppage time.