Walsall threatened early as Luke Leahy's defence-splitting pass freed Josh Ginnelly but he curled inches wide from 18 yards.
Ex-Saddlers skipper Andy Butler gifted his old team the opener as his mistimed header from a Ginnelly cross set up Morgan Ferrier to nod home from close range.
But Doncaster levelled on the half hour as Leahy handled a high ball and John Marquis tucked home his fourth league goal of the season from the resultant penalty kick.
Doncaster keeper Marko Marosi impressively foiled Ferrier's six-yard strike after the break before Rovers went in front as Leeds loanee Mallik Wilks drilled past Liam Roberts at his near post.
Wilks' surging run set up James Coppinger to curl home a fine third before Matty Blair sealed the rout in stoppage time.