The Saddlers grabbed an early lead when skipper Andy Butler headed home from a second-minute corner.
Yet Rovers drew level on 16 minutes, striker Billy Paynter capitalising on a kind deflection from Chris Brown's header to poke the ball home from close range.
Rovers continued to take the game to the visitors and had two claims for first-half penalties rejected by the referee.
Brown headed wide from a cross after Febian Brandy had gone close to punishing a defensive mix-up.
Doncaster skipper Rob Jones headed over on 67 minutes after David Cotterill's 30-yard try had hit the crossbar.
Rovers goalkeeper Gary Woods saved well from substitute Craig Westcarr at the expense of a corner.
Woods also did well to keep out San Mantom's 20-yard effort on 73 minutes.
Brandy then won the goal for Walsall nine minutes later by cutting past Tommy Spurr and slotting the ball home.