The hosts were always up against it when David McAllister saw red in the first half for a reckless challenge on Iain Hume before James Husband put Rovers on course for a first win in six matches in the 73rd minute.
While Tom Eaves thought he had earned a point for the Shrews in the last minute, there was still enough time for Doncaster to snatch victory when Bennett's strike took a touch off a home player before going in.
Doncaster now lead by a point at the top of the league after Yorkshire and promotion rivals Sheffield United were held to a goalless draw at home to Leyton Orient.
Tranmere and Swindon could have joined Doncaster on 62 points, but both suffered setbacks.
Rovers striker Abdulai Bell-Baggie's strike just before the half-hour was cancelled out by Neal Bishop, who helped Notts County claim a 1-1 draw in the 74th minute.
It was even worse for the Robins as Steven Schumacher's goal in the 21st minute gave struggling Bury a 1-0 win. The Shakers are still six points adrift of safety, however.
Brentford moved up into fifth after edging out Crawley 2-1, with both teams finishing the contest with 10 men.
Mark Connolly was sent off in the second minute after a foul in the box on Clayton Donaldson, who missed the subsequent penalty but would make amends just after the half hour to put the Bees two ahead after Sam Saunders had broken the deadlock in the 16th minute.
The sides were evened up when Adam Forshaw was dismissed for a second bookable offence in the 59th minute and although Nicky Adams halved the deficit soon after, Brentford held on.
Yeovil lost ground on the top two after Billy Clifford's goal just before half-time and Freddie Sears' 62nd-minute strike gave Colchester a 2-0 win.
Hartlepool made it seven league games unbeaten as they hammered Crewe 3-0, with Charlie Wyke, Jonathan Franks and Andy Monkhouse all on target. The north-east club are now level on points with Bury.
Shaun Williams rescued a 1-1 draw for Milton Keynes Dons against Portsmouth, who had taken the lead through David Connolly, while Mark Duffy's 66th-minute effort gave Scunthorpe a 1-0 win over Stevenage.
Leon Clarke scored on the stroke of half-time and Carl Baker added a late penalty as Coventry eased to a 2-0 win at Bournemouth, while a superb hat-trick from Will Grigg gave Walsall a 3-0 success at Carlisle.