Doncaster keeper Neil Sullivan produced a string of fine saves to deny Reading a first home win of the season.
Sullivan held a header from Alex Pearce and saved Gylfi Sigurdsson's low shot before Brian Howard beat him with a 30-yard lob that hit the crossbar.
Not to be outdone, Reading keeper Adam Federici then made a sharp save to stop Shaun Cummings scoring an own goal.
After the break, Sullivan saved from Darren O'Dea, Grzegorz Rasiak, Pearce and Kalifa Cisse to secure a 0-0 draw.
Rasiak, on as a substitute, was played in by Howard and the Polish international fired in a low shot to the near post which Sullivan did well to keep out.
He then tipped over a Pearce header and got his fingertips to another header from Cisse to earn a point for his team.
Reading manager Brendan Rodgers: "I am pleased with the clean sheet but in the second half I thought we were more likely to win.
"They changed their formation three times during the game, starting 4-3-3, changing to a diamond formation and in the second-half going 2-3-3-2.
"Our players had to adapt because you can't just keep running around or else spaces open up.
"The international break was both good and bad for us. We had won 3-1 at Barnsley so wanted to keep that going, but on the other hand the break gave us a chance to bed our new signings in."
Doncaster manager Sean O'Driscoll:
"Those saves will get the headlines but they were there for him to save.
"They were all saves you would expect him to make.
"We played Reading twice last season and got nothing out of them, so to play below our best and get a point was a plus."