Stoke denied West Ham a third straight victory at the London Stadium after substitute Bojan Krkic's strike secured a 1-1 draw.
The hosts looked to be heading for a much-needed victory after Glenn Whelan's second-half own goal.
But erratic goalkeeping from Adrian then led to Stoke's equaliser, taking the visitors up to 10th in the Premier League and leaving 15th-placed West Ham just four points off the bottom three.
An underwhelming opening half belied the fact that, after each of these teams experienced difficult starts to the season, their results had recently improved.
Defeat in their most recent fixture, at Everton, had ended the hosts' run of three consecutive wins, while Stoke had won their past three and not lost in five.
Any sense of momentum, however, was largely absent. Only a 27th-minute header from West Ham's Angelo Ogbonna - well saved by Lee Grant - and Dimitri Payet's narrowly-off-target free-kick on the stroke of half-time left any impression.
The second half started at a similarly pedestrian pace, with both sides appearing short of confidence and unwilling to take the sort of risks which might have brought the game to life.
Phil Bardsley, with a powerful-but-optimistic 40-yard strike that went over the crossbar, had provided the only further attacking threat when Slaven Bilic was rewarded for making a double substitution.
The manager removed the largely-anonymous Manuel Lanzini and Andre Ayew, replacing them with Ashley Fletcher and Edimilson Fernandes, and a goal almost instantly followed.
Taking advantage of space on the left wing, Payet sent a 65th-minute cross towards Antonio, who with his back to goal headed against Whelan, taking the ball beyond the diving Grant into the far-left post in one of few positive contributions the day before Gareth Southgate's latest England squad is announced.
Perhaps inspired by his opposite number, Mark Hughes then removed Wilfried Bony and Whelan for Peter Crouch and Bojan, and Stoke similarly responded by drawing level four minutes later.
A pass from Charlie Adam had put Jon Walters into space, and oddly prompted West Ham's Adrian to rush out of goal.
The forward took advantage by chipping the ball over the goalkeeper, and from there the turning Bojan was first to reach it and send a classy finish into the near-open goal.
In one last attempt at goal and when Adrian again appeared uncertain, Adam tested the goalkeeper with a late free-kick, but he unconvincingly turned it around the post to ensure a point.