A second-half penalty from Brian Stock handed Doncaster victory against basement side Charlton.
Rovers took the lead through former Newcastle player James Coppinger who smashed in a great strike.
Nicky Bailey equalised for the home side when he looped in a superb effort past the stranded Neil Sullivan.
But Bailey turned villain shortly after when he brought down Richie Wellens to concede a penalty which Stock converted into the top-right corner.
Charlton boss Phil Parkinson on staying up:
Please turn on JavaScript. Media requires JavaScript to play.
"It's certainly a daunting task - we can't hide away from that.
"We have one almighty task on our hands. But we have got to make the players believe. Let's make sure we don't take 10 steps back from this.
"We need one hell of a run but you have to maintain some belief."
Doncaster boss Sean O'Driscoll told BBC Radio Sheffield:
"I'm pleased that in difficult conditions we showed the bit of quality that mattered and we deserved it.
"That's nine wins in 11 games so results wise we've been excellent.
"We've performed well all season but couldn't get the goals. I'm delighted that the players are getting the credit they deserve."
Charlton: Elliot, Butterfield, Hudson, Ward, Youga (Ambrose 79), Soares (Sam 60), Racon, Spring (Burton 60), Bailey, Shelvey, Dickson. Subs Not Used: Randolph, Holland.
Booked: Racon, Ambrose.
Goals: Bailey 73.
Doncaster: Sullivan, Chambers, Mills, Hird, Roberts, Spicer (Lockwood 85), Stock, Wellens, Woods, Coppinger (Shiels 90), Heffernan (Price 81). Subs Not Used: Hayter, Wilson.
Booked: Chambers, Coppinger, Spicer.
Goals: Coppinger 50, Stock 78 pen.
Att: 20,815
Ref: Rob Styles (Hampshire).
What are these?
Print Sponsor
Bookmark with:
What are these?