James Coppinger earned Doncaster a precious point at West Ham as Sam Allardyce's team slipped further behind Championship leaders Southampton.
Kevin Nolan tapped in on nine minutes to give the Hammers an early lead.
But the visitors were inspired in the second half by El-Hadji Diouf, who set up Coppinger to equalise late on.
The Senegal winger could have won it when he tested Rob Green but the draw moves second-from-bottom Doncaster level on points with Coventry.
West Ham remain second in the table, three points behind the Saints, but they are level on points with third-placed Reading, who beat Leicester.
They thought they had the perfect start in the first minute when Ricardo Vaz Te had the ball in the net but the Portugal striker was adjudged to have fouled full-back Pascal Chimbonda.
Just a couple of minutes later, Carlton Cole rattled the bar with a vicious strike and it looked as though the Hammers were set to run away with the game when Nolan poked home from close range.
But Doncaster got back into the game when Simon Gillett steered the ball to Coppinger, who made no mistake with his finish.
The relegation-threatened side could have won it late on when Coppinger set up Diouf, but the former Liverpool, Bolton and Blackburn man was unable to get a clean connection on the ball and West Ham keeper Green turned the ball away.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The referee ends the match.90:00 +3:37
Pascal Chimbonda fouled by Sam Baldock, the ref awards a free kick. John Oster takes the free kick.90:00 +1:52
Unfair challenge on Sam Baldock by Sam Hird results in a free kick. The ball is delivered by Mark Noble, Jack Collison produces a right-footed shot from deep inside the penalty area which goes wide of the left-hand post.90:00 +0:58
Unfair challenge on Habib Beye by Carlton Cole results in a free kick. Carl Ikeme takes the free kick.90:00 +0:37
Free kick awarded for a foul by El-Hadji Diouf on Abdoulaye Faye. Robert Green restarts play with the free kick.89:10
Corner taken right-footed by Mark Noble, James Tomkins takes a shot. Save made by Carl Ikeme.84:24
Carlton Cole takes a shot. Blocked by Habib Beye.83:05
The ball is sent over by Pascal Chimbonda, El-Hadji Diouf takes a shot. Save by Robert Green. Inswinging corner taken by El-Hadji Diouf, save by Robert Green.79:16 Substitution
Substitution Kevin Nolan goes off and Danny Collins comes on.78:13
El-Hadji Diouf fouled by Abdoulaye Faye, the ref awards a free kick. Free kick crossed right-footed by El-Hadji Diouf from right channel, Kevin Nolan makes a clearance.77:17
Inswinging corner taken by Mark Noble from the left by-line, clearance made by Sam Hird.76:31
Headed effort from deep inside the penalty area by Matthew Taylor misses to the left of the goal.75:40
Simon Gillett is caught offside. Indirect free kick taken by Robert Green.74:33 Substitution
Substitution Shelton Martis goes off and Sam Hird comes on.72:58
Assist on the goal came from Giles Barnes.72:58 Goal scored
Goal! - James Coppinger - West Ham 1 - 1 Doncaster James Coppinger grabs a goal from close in to the bottom right corner of the goal. West Ham 1-1 Doncaster.72:45
El-Hadji Diouf crosses the ball.72:07
El-Hadji Diouf takes a shot. Save by Robert Green.70:10
Mark Noble takes the inswinging corner, El-Hadji Diouf makes a clearance.68:01
The ball is swung over by James Coppinger, Headed effort from deep inside the penalty area by El-Hadji Diouf misses to the left of the goal.
James Coppinger produces a cross, Robert Green makes a save.62:54
James Coppinger crosses the ball, save by Robert Green.61:53
The assistant referee flags for offside against El-Hadji Diouf. Abdoulaye Faye takes the indirect free kick.59:59 Substitution
Substitution John Oster comes on in place of Mamadou Bagayoko.58:31
Free kick awarded for a foul by Carlton Cole on Pascal Chimbonda. Pascal Chimbonda takes the free kick.57:47
A cross is delivered by Giles Barnes, Headed effort from close range by Mamadou Bagayoko goes wide left of the goal.57:10
Matthew Taylor delivers the ball, save by Carl Ikeme.55:47 Substitution
Substitution Gary O'Neil is brought on as a substitute for Henri Lansbury.55:47
Close range header by Carlton Cole goes over the bar.55:21
Giles Barnes concedes a free kick for a foul on Kevin Nolan. Mark Noble takes the direct free kick.53:33
Free kick awarded for a foul by Carlton Cole on Habib Beye. Carl Ikeme takes the direct free kick.52:19
El-Hadji Diouf delivers a pass corner to short, Carlton Cole manages to make a clearance.51:25
Corner taken by El-Hadji Diouf from the right by-line, Giles Barnes takes a shot. Blocked by James Tomkins.50:11
The ball is delivered by George McCartney, Sam Baldock takes a shot.48:42
Mark Noble concedes a free kick for a foul on El-Hadji Diouf. The ball is swung over by El-Hadji Diouf, Headed effort from deep inside the penalty area by Giles Barnes misses to the left of the goal.47:02
Mark Noble challenges Giles Barnes unfairly and gives away a free kick. Free kick taken by James Coppinger.45:01
The referee starts the second half.45:00 +2:22 Half time
Half Time The referee blows for half time.45:00 +0:21
Foul by Mark Noble on El-Hadji Diouf, free kick awarded. Free kick taken by Tommy Spurr.44:43
The ball is sent over by Mark Noble, Shelton Martis manages to make a clearance.44:19
Mark Noble takes a short corner.41:56
Jack Collison produces a right-footed shot from just outside the box that goes wide right of the goal.41:08
Mark Noble takes a inswinging corner.39:36
Foul by Habib Beye on Carlton Cole, free kick awarded. Matthew Taylor fires a strike on goal direct from the free kick.39:02
The ball is delivered by El-Hadji Diouf, Giles Barnes has a header from deep inside the six-yard box and clears the crossbar.38:22
Free kick awarded for a foul by Kevin Nolan on El-Hadji Diouf. Free kick crossed by El-Hadji Diouf, Carlton Cole manages to make a clearance.37:21
The ball is crossed by James Coppinger.36:23
The ball is crossed by El-Hadji Diouf, George McCartney makes a clearance.35:55
Corner taken by El-Hadji Diouf from the right by-line to the near post, clearance by Matthew Taylor.35:01
Handball by Jack Collison. Free kick taken by Tommy Spurr.32:18
James Coppinger takes a shot. Save by Robert Green. Corner taken by El-Hadji Diouf from the left by-line, Robert Green makes a save.28:56
Kevin Nolan concedes a free kick for a foul on James Coppinger. Free kick taken by Carl Ikeme.28:39
James Tomkins takes a shot. Carl Ikeme makes a save.28:07
The ball is delivered by Sam Baldock, blocked by Pascal Chimbonda. Corner taken right-footed by Mark Noble from the left by-line, clearance by Habib Beye.24:59
Kevin Nolan gives away a free kick for an unfair challenge on Habib Beye. Direct free kick taken by Carl Ikeme.24:17 Substitution
Substitution (West Ham) makes a substitution, with Sam Baldock coming on for Ricardo Vaz Te.24:17
Simon Gillett produces a right-footed shot from long range which goes wide right of the target.20:50
Effort from outside the area by James Tomkins goes wide right of the goal.19:17
Mark Noble challenges El-Hadji Diouf unfairly and gives away a free kick. Habib Beye takes the direct free kick.18:37
Ricardo Vaz Te takes a shot. Giles Barnes gets a block in.16:54
James Coppinger crosses the ball, save made by Robert Green.12:58
The assistant referee flags for offside against Carlton Cole. Indirect free kick taken by Carl Ikeme.8:25 Goal scored
Goal! - Kevin Nolan - West Ham 1 - 0 Doncaster Kevin Nolan finds the net with a goal from inside the six-yard box to the top left corner of the goal. West Ham 1-0 Doncaster.8:00
Henri Lansbury takes a shot. Blocked by Habib Beye.7:41
Habib Beye gives away a free kick for an unfair challenge on James Tomkins. Kevin Nolan takes the free kick.7:14
Effort on goal by Carlton Cole from 12 yards.5:10
Free kick awarded for a foul by Carlton Cole on Tommy Spurr. Free kick taken by Carl Ikeme.4:24
Matthew Taylor delivers the ball.4:01
Carlton Cole takes a shot.3:25
Foul by Kyle Bennett on George McCartney, free kick awarded. Robert Green restarts play with the free kick.0:13
Foul by Ricardo Vaz Te on Pascal Chimbonda, free kick awarded. Carl Ikeme takes the direct free kick.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers