The home side looked dangerous right from the start in Monday afternoon's south Yorkshire derby in the Championship, and went ahead after 14 minutes when the impressive Billy Sharp set up Hayter.
Barnsley looked leggy from their exertions in the 4-1 win over Leeds on New Year's Eve but pressed forward in search of an equaliser in the second half only for Bennett to lash home from 20 yards in the final minute and seal a third consecutive home win.
The result saw Dean Saunders' side replaced at the bottom of the league by Coventry, while Barnsley slipped down to 16th place.
Doncaster came flying out the traps and Barnsley goalkeeper Luke Steele was forced into a good save from Sharp's shot with only two minutes on the clock.
Rovers defender George Friend was forced off injured and replaced by Adam Lockwood but the home side continued to press and took the lead with less than quarter of an hour gone.
Brian Stock played a pass over the top to Sharp, who beat his man before cutting the ball back for Hayter to side-foot home his fourth goal of the season.
Following his hat-trick heroics against Leeds, Ricardo Vaz Te was kept quiet by the Doncaster defence but he wasted a glorious chance to equalise 10 minutes before the break.
Stephen Foster curled in a dangerous free-kick and the ball was flicked into the path of the Portuguese but he fired wide from close range.
At the other end, Sharp was causing Barnsley all sorts of problems and he peeled away on the left before playing a fine ball into Bennett who failed to convert under pressure from Jim McNulty.
In first-half injury-time, Simon Gillett linked up well with Bennett before firing in a shot from 12 yards which was beaten away by Steele.
Barnsley boss Keith Hill brought Reuben Noble-Lazarus on for Matty Done shortly after the break and the youngster whipped in a corner which found McNulty who headed over.
Soon after a header from Lockwood fell to Scott Wiseman, who saw his shot saved by Button as Barnsley began to turn the screw.
Hill sacrificed midfielder Miles Addison to bring on striker Andy Gray in a bid to get back into the game but Doncaster continued to look dangerous themselves.
James Coppinger twice went close before Sharp's header was saved by Steele.
Barnsley had Steele to thank for keeping them in the game when he saved from Coppinger but moments later a poor clearance from Foster fell to Bennett who fired into the top left-hand corner to complete the win.