Graham Dorrans fired a glorious free-kick past Neil Sullivan to give the Baggies the lead after 30 minutes before Chris Brunt seized on a poor defensive header to double their advantage in first-half injury time.
Jay Emmanuel-Thomas responded for Doncaster in the 47th minute but Roman Bednar’s 73rd-minute strike re-established West Brom’s lead.
James Hayter did pull one back for Rovers but it was not enough to prevent the visitors securing their return to the top flight after just one season in the Championship.
Hayter had earlier had the first meaningful effort on goal after running onto a lovely reverse pass by John Oster. The forward twisted his way past two defenders but Albion goalkeeper Scott Carson was able to tip his shot over the crossbar.
The Baggies defence was under more pressure moments later as James Chambers burst into the box but Jonas Olsson made a great block.
It was the Baggies who took the lead against the run of play on the half-hour mark as Dorrans brilliantly curled home a free-kick beyond Sullivan’s despairing dive into the top corner.
The goal stunned Doncaster and they were fortunate not to be two goals down a couple of minutes later as Simon Cox failed to hit the target from Robert Koren’s ball across the box.
Rovers should have been level just before the break but Shelton Martis failed to make contact with Emmanuel-Thomas’ free-kick and Carson was just able to keep the ball out.
Brunt then extended the Baggies’ lead as he took advantage of a defensive blunder by former West Brom man Chambers. The defender did not see Brunt racing in behind him and his header back to Sullivan was intercepted by the Northern Ireland midfielder.
Sullivan kept out his first effort but Brunt made no mistake as he tapped home the rebound with the last action of the first half for the Baggies’ 100th goal in all competitions this campaign.
Rovers hit back within two minutes of the restart as Emmanuel-Thomas received the ball on the right side of the box from Hayter, the on-loan Arsenal midfielder drove into the area before wrong-footing an unsighted Carson with his left-footed shot.
The home side were cut apart in the 55th minute by Dorrans’ long pass and it took a brave tackle from James O’Connor to deny Bednar, while Steven Reid saw his header fly just wide from the resulting corner.
Cox then had a goal ruled out due to Bednar being offside in the build-up as the visitors continued to carve out the clearer chances.
Doncaster pushed forward in search of an equaliser but their hopes of earning a point were dealt a blow after a poor clearance from Chambers allowed Brunt to cross and Bednar guided the ball home at the far post.
Rovers set up a nervy finish as Hayter was left unmarked to pull one back with a fine header and the forward then somehow failed to convert from close range as the hosts threw caution to the wind late on.
But the visitors held on to bounce back to the Premier League at the first attempt with the final whistle sending the large travelling support into delirium, with the fans spilling onto the pitch to join the celebrations.