The winning margin was far wider than might have been expected when Keighley took charge at the start.
But the Dons gradually grew in confidence after battling back from behind to climb two places up the table and leave the Cougars at the bottom.
Both sides had tries disallowed in the opening stages but it was Keighley who made the more purposeful start and they deservedly went ahead when Sean Hesketh powered over the line with Danny Jones adding the points in the sixth minute.
Doncaster did well to prevent the visitors adding to their score after being under pressure for the first quarter before levelling against the run of play following a superbly-timed pass from Paul Cooke in the 21st minute.
Chris Spurr took full advantage to cross over with winger Stuart Sanderson tagging on the points.
Danny Cowling put Tuffour over for his first try just before the interval and the same player produced a brilliant off-load to send the winger in again early in the second half.
Second row forward Olly Pursglove forced his way over in the 58th minute with Jones improving to cut the deficit to six points before Doncaster finished the stronger to put the issue beyond doubt.
Sanderson ran the full length of the pitch to leave Keighley ruing not playing to the whistle when he pounced on a loose ball in the 61st minute.
Substitute Mike Emmett then rounded off a slick passing move to put the icing on the cake for Doncaster seven minutes from time.
Doncaster: Butterfield, Tuffour, Cowling, Kaye, Sanderson, Cooke, Fawcett, Waller, Kesik, Castle, Kelly, Spurr, Trout. Substitutes: Emmett, Carbutt, Scott, Edwards.
Keighley Cougars: White, Duffy, Williams, Chandler, Lawton, Jones, March, Hesketh, Feather, Shickell, Sager, Pursglove, Rawlins. Substitutes: Parkinson, Law, Sheriffe, Lynam.
Referee: J Leahy (RFL).