Kevin Nolan's ninth goal of the season capped a dominant start for the hosts but they took their foot off the gas and were punished when James Coppinger levelled in the 73rd minute.
The hosts looked to have got off to a flying start when Ricardo Vaz Te had the ball in the net inside the opening minute but the Portuguese was penalised for a foul on Pascal Chimbonda.
It took just another two minutes before the Hammers threatened again as Carlton Cole collected a pass from Jack Collison and rifled a 20-yard effort against the crossbar.
The inevitable breakthrough came after nine minutes as Nolan stabbed in from close range after Rovers failed to clear their lines following Henri Lansbury's shot.
Dean Saunders' men briefly relieved the pressure when El-Hadji Diouf broke away down the right but his threatening cross was plucked out of the air by Rob Green just as Mamadou Bagayoko was closing in.
Sam Allardyce was forced to make a change midway through the opening half when Vaz Te went down clutching his hamstring. He was replaced by Sam Baldock.
With the home side beginning to lose some of their impetus, Doncaster sensed an opportunity to get a foothold in the game and Coppinger's powerful strike, which Green had to palm around the post, underlined their increasing threat.
They continued to grow into the game after the interval, with Diouf providing their most promising outlet. The Senegalese whipped in a free-kick which Giles Barnes nodded narrowly wide.
The Hammers sought to reassert their authority with a prolonged spell of pressure but Rovers pressed the ball well, restricting the space the hosts had to work in.
When Doncaster won it back they caused panic in the penalty area as Coppinger's cross was left by Green before James Tomkins eventually took charge of the situation to clear to safety.
But with 17 minutes to go the visitors deservedly drew level as Simon Gillett kept the ball alive in the box and Coppinger capitalised to steer it in from close range.
Upton Park held its breath when Coppinger delivered for Diouf with five minutes to play but he could not make clean contact with his shot and Green turned the ball away for a corner.
The draw extends West Ham's unbeaten run to seven matches but Southampton's victory over Barnsley means they are three points behind in the race for the title.
Doncaster, meanwhile, are still fighting for survival after taking six points from their last four games.