Doncaster and Crystal Palace fought out a nervy draw at the Keepmoat Stadium that leaves both clubs still hovering above the Championship relegation zone.
The visitors now sit three points above third-from-bottom Scunthorpe, while Doncaster are two points above Palace.
Home striker Jason Euell lashed a shot across goal with 20 minutes left when Julian Speroni was well beaten.
Palace's Neil Danns hit the post with a right-footer minutes later but neither side could claim maximum points.
Though Rovers enjoyed the better of the contest, they are now without a win in nine games, while for Palace - who have the worst away record in English football - it was a rare point on the road.
The opening 20 minutes proved to be a scrappy affair, but Doncaster grew in confidence as they started to get men forward to support lone forward Euell.
Lining up against his former club, John Oster drove narrowly wide from distance before James Coppinger played in James O'Connor, but the full-back's touch was heavy and his effort to pull the ball across goal was cleared by Anthony Gardner.
Euell then shot wide after slaloming through the Palace rearguard with the hosts then furious to see their appeals for a handball in the box turned away after another Oster attempt struck Nathaniel Clyne.
Centre-half Wayne Thomas forced a sharp save from Speroni with a powerful header with Palace penned in their own half for much of the first half.
That pattern continued at the start of the second as Euell fired wide after turning on the edge of the six-yard box from Simon Gillett's pull-back.
Gardner was fortunate to escape with a booking as he appeared to use two feet in a tackle on Gillett.
Euell then forced Speroni into action with an acrobatic overhead kick but, on the hour mark, Palace served a reminder of their own threat when a fine cross from Pablo Counago forced Gary Woods to make a sharp stop from Darren Ambrose's close-range header.
Coppinger just failed to get on the end of a long goal-kick after Dean Moxey had slipped before Euell dragged his effort narrowly wide on 69 minutes.
Palace then wasted two gilt-edged chances to snatch the points.
Substitute Steffen Iversen teed up Danns, but the midfielder's shot came back off a post, before former Tottenham forward Iversen blazed over from close range after a great run by Clyne.
Corner taken by Dean Shiels from the right by-line played to the near post.
Substitution Dean Shiels is brought on as a substitute for James Coppinger.
James O'Connor produces a right-footed shot from just outside the box that goes wide right of the target.
Free kick awarded for a foul by John Oster on Wilfried Zaha. Direct free kick taken by Julian Speroni.
Jason Euell is caught offside. Julian Speroni takes the free kick.
Substitution Shelton Martis comes on in place of Mustapha Dumbuya.
Free kick crossed right-footed by Darren Ambrose from left wing, save by Gary Woods.
Booking The referee shows Brian Stock a yellow card.
Foul by Brian Stock on Dean Moxey, free kick awarded.
James Hayter fouled by Wilfried Zaha, the ref awards a free kick. Gary Woods restarts play with the free kick.
Substitution James Hayter replaces Franck Moussa.
Steffen Iversen takes a shot from close range clearing the crossbar.
Shot by Neil Danns from inside the penalty box bounces off the post.
Jason Euell produces a right-footed shot from deep inside the penalty area which goes wide of the left-hand post.
Substitution Steffen Iversen is brought on as a substitute for Pablo Counago.
Inswinging corner taken right-footed by James Coppinger from the left by-line, clearance by Patrick McCarthy.
Corner taken right-footed by James Coppinger, Patrick McCarthy manages to make a clearance.
James Coppinger produces a cross, Julian Speroni makes a save.
Neil Danns takes a shot. Gary Woods makes a save.
Unfair challenge on Jason Euell by Kagisho Dikgacoi results in a free kick. Free kick taken by George Friend.
Darren Ambrose takes a shot. Save by Gary Woods.
Jason Euell has an effort at goal. Save by Julian Speroni.
Direct free kick taken by John Oster.
Booking Anthony Gardner receives a yellow card for unsporting behaviour.
Anthony Gardner gives away a free kick for an unfair challenge on Simon Gillett.
Brian Stock produces a left-footed shot from just outside the penalty box that misses to the left of the goal.
Jason Euell produces a left-footed shot from just outside the penalty box that goes wide left of the target.
Dean Moxey takes a shot from just outside the penalty area clears the crossbar.
Shot by Jason Euell from deep inside the penalty area misses to the right of the goal.
Outswinging corner taken by James Coppinger from the right by-line, clearance made by Patrick McCarthy.
James O'Connor concedes a free kick for a foul on Wilfried Zaha. Kemy Agustien delivers the ball, Patrick McCarthy produces a header from deep inside the six-yard box which goes wide of the right-hand post.
Pablo Counago challenges George Friend unfairly and gives away a free kick. George Friend takes the direct free kick.
The referee blows his whistle to start the second half.
45:00 +3:06 Half time
Half Time The half-time whistle blows.
Inswinging corner taken by James Coppinger, Anthony Gardner manages to make a clearance.
Corner taken by John Oster, Anthony Gardner makes a clearance.
Corner from left by-line taken by Brian Stock.
Brian Stock concedes a free kick for a foul on Dean Moxey. Kemy Agustien crosses the ball in from the free kick.
Kemy Agustien challenges James Coppinger unfairly and gives away a free kick. John Oster takes the direct free kick.
Pablo Counago is adjudged to have handled the ball. Gary Woods takes the indirect free kick.
James Coppinger produces a cross, clearance made by Anthony Gardner.
The referee blows for offside against Jason Euell. Julian Speroni restarts play with the free kick.
Outswinging corner taken by James Coppinger from the right by-line played to the near post, clearance made by Anthony Gardner.
Free kick awarded for an unfair challenge on Wilfried Zaha by James O'Connor. Free kick taken by Dean Moxey.
Foul by John Oster on Kemy Agustien, free kick awarded. Direct free kick taken by Julian Speroni.
Corner taken right-footed by James Coppinger to the near post, Dean Moxey manages to make a clearance. Brian Stock takes the outswinging corner, Wayne Thomas takes a shot. Save by Julian Speroni.
Jason Euell produces a left-footed shot from deep inside the six-yard box which goes wide of the left-hand upright.
James Coppinger produces a right-footed shot from just outside the area that goes wide left of the goal.
John Oster takes a shot from long range which goes wide of the right-hand upright.
Inswinging corner taken by James Coppinger, save by Julian Speroni.
Brian Stock challenges Neil Danns unfairly and gives away a free kick. Julian Speroni takes the free kick.
Simon Gillett concedes a free kick for a foul on Nathaniel Clyne. Julian Speroni takes the direct free kick.
Wilfried Zaha fouled by James O'Connor, the ref awards a free kick. Kemy Agustien takes the free kick.
Short corner worked by Darren Ambrose.
Kemy Agustien fouled by James Coppinger, the ref awards a free kick. Free kick taken by Anthony Gardner.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.