West Brom ended their two-year Premier League exile after a nervy 2-2 draw with QPR.
The Baggies crawled across the line to seal second spot in the Sky Bet Championship after Brentford lost 2-1 to Barnsley.
Had the Bees won Albion would have dropped into the play-offs but Slaven Bilic’s side survived an agonising final few minutes to celebrate promotion.
Ebere Eze denied them the victory which would have made Wednesday night’s finale at The Hawthorns much easier.
Callum Robinson had put the Baggies 2-1 ahead after Grady Diangana cancelled out Ryan Mannings’ first-half opener for QPR.
It was a night for the neutral during an entertaining final evening in the division and the Baggies initially showed few signs of nerves despite what was at stake.
Joe Lumley smothered at Diangana’s feet after the forward tried to burst clear and the recalled Robinson glanced Darnell Furlong’s cross wide.
Vocal QPR stopper Lumley was busy and he got down well to save Romaine Sawyers’ low effort after 15 minutes.
Albion made the running with Matheus Pereira twice ballooned over but they failed to take an early lead.
Slowly, the visitors gained a foothold and it was evident there was not going to be a repeat of the 7-1 thumping they suffered in their last visit to The Hawthorns.
The mid-table visitors had nothing hanging on the game but they played their part in the promotion drama by stunning the Baggies with the opener after 34 minutes.
Mannings collected the ball 20 yards out and, while Kyle Bartley blocked his first effort, the ball fell kindly for the midfielder to drill a second strike low into the corner.
But Albion refused to buckle and levelled 10 minutes later when Diangana slotted through Lumley’s legs after being slipped through by Robinson.
On-loan Sheffield United forward Robinson then had a goal disallowed for offside and flashed a volley wide in first-half injury time.
It was only a warning for what was to come as the Baggies turned the game around five minutes after the break.
Diangana’s brilliant skill bamboozled Luke Amos and Osman Kakay to find the unmarked Robinson in the area and he tapped in from six yards.
It was just the 25-year-old’s second start since the Championship resumed and he should have made it 3-1 four minutes later, only to shoot wide with just Lumley to beat.
It proved a costly miss as the positive and competitive Rangers levelled after 61 minutes with a magical strike from Eze.
Yoann Barbet’s long ball found Eze, who took advantage of Dara O’Shea’s poor positioning to effortlessly find the top corner from 18 yards.
As news filtered through of a Brentford leveller, Filip Krovinovic was denied by Lumley to set up a tense final 15 minutes.
But Barnsley’s late winner at Griffin Park eased the nerves and saw the Baggies coaching staff urging their players back from a corner to ensure they collected the point they needed.
Press Association