Rovers u21s 2 Reading u21s 1 (after extra-time)
Rovers clinched a place in the U21 Premier League Cup final after a dramatic match at Leigh Sports Village.
Sam Lavelle gave Rovers a first half lead but Tariqe Fosu levelled for the visitors just 11 minutes from time.
That meant the game went to extra-time with Bradley Bauress firing Rovers back in front from the spot after Reading substitute Liam Kelly felled Lewis Mansell in the box.
In a dramatic end to the match the Royals struck the woodwork with almost the last kick of the game, but Rovers survived to book themselves a two-legged final against either Southampton or Derby County.
Eric Kinder made six changes from the side that lost narrowly to Middlesbrough on Monday night. David Raya, Yann Songo'o, Sam Lavelle, Mark Edgar, Bradley Bauress and Lewis Mansell all come into the starting line-up.
That meant first starts at Under-21 level for defender Edgar and forward Mansell after the pair impressed as substitutes earlier in the week.
It was Mansell who made an early impression at Leigh with excellent work in midfield to win possession. Spreading play wide to the left for Connor Mahoney, the striker raced into the area to meet the centre, but he couldn't get a clean connection and the chance was gone.
The Royals, who lifted the trophy 12 months ago, showed their pedigree with a fine shot from Aaron Kuhl. The Reading captain struck the ball well from outside the area requiring David Raya to use fingertips to touch it over the bar.
At the other end Daniel Lincoln in the Reading goal claimed a Yann Songo'o header, whilst Raya saved comfortably after Jack Stacey had drove at goal.
The midway point of the first half saw Rovers take the lead, and it was in no small part to the sheer persistance from the impressive Mansell.
The young forward chased a lost cause, forcing his man into conceding a corner, and as Devarn Green swung the ball in, Sam Lavelle saw his header find the back of the net via a deflection.
Rovers quickly looked to double their advantage as David Carson and Ryan Nyambe combined down the right, but Lincoln held the centre well under pressure from Mansell.
But it was Reading who ended the first half strongly with two excellent chances to get back on level terms.
On 30 minutes Tariqe Fosu raced goalwards from the left but right-footed he fired wide of goal from an excellent position.
Forward Ryan Edwards would go closer on 36. After Kuhl sent Stacey down the right his cross was met on the volley by the Australian but his effort struck the crossbar and bounced to safety.
Trailing at the break, the visitors started the second half strongly, camped in and around the Rovers penalty area.
Yet it was the home side who could have doubled their advantage from a Bauress corner but Lavelle sliced his shot on the turn wide of goal.
Rovers were then thankful for two important blocks from Yann Songo'o before a curling effort from Andrija Novakovich flashed just wide.
Novakovich then turned provider with a cross to the back post which Stacey headed over as the game became increasingly stretched.
The home side countered with excellent chances of their own with Lincoln in the Reading goal making two key saves to keep them in the tie.
First he denied substitute Modou Cham at his near post then from the resulting corner he sensationally kept out an acrobatic strike from Songo'o when it seemed certain the Cameroonian would score.
But instead of doubling their advantage Rovers found themselves pegged back on 79. Fosu grabbing the all-important equaliser, squeezing a low shot beyond Raya at his post after a run along the edge of the box.
Both sides had chance to settle the tie inside 90 minutes, Mansell was denied after a near-post flick, whilst a Stacey shot flashed across the Rovers box.
Four minutes into extra-time Rovers were given a great opportunity to regain the lead when they were awarded a penalty after substitute Liam Kelly had clumsily brought down Mansell in the box.
With regular penalty taker Dean Rittenberg amongst the substitutes, Bradley Bauress took the honours and the midfielder made no mistake from 12-yards sending the keeper the wrong way.
The chances kept on coming, Harry Cardwell glanced a chance wide at one end, whilst Hyuga Tanner saw a goalbound shot blocked by Niall Keown at the other.
Cardwell then spurned a great chance after Fosu played him through, but the young striker's effort skimmed the outside of the post.
There were fewer chances in the second period of added time, but there would be time for late drama at the death.
In the second of two additional minutes at the end of the 120, the Royals won a free-kick in a dangerous position just outside the box.
Goalkeeper Daniel Lincoln was sent up to add to the pressure as the ball was swung in, defender Pierce Sweeney nodded on for Novakovich, but the Reading front man slammed his close-range shot against the crossbar.
The woodwork was still rattling as Rovers breathed a sigh of relief, keeping the ball for the remaining seconds to book themselves a place in the final.
It had been a hugely entertaining fixture between two hardworking sides, Rovers just doing enough to progress to a two-legged final against either Southampton or Derby County.
ROVERS: Raya, Nyambe (sub Cham 70 mins), Edgar, Carson (c), Songo'o, Lavelle, Thomson, Bauress, Mansell (sub Rittenberg 113 mins), Green (sub Tanner 78 mins), Mahoney.
Subs not used: Crump, Jones.
Goals: Lavelle 22 mins, Bauress (pen) 95 mins.
READING: Lincoln, Long, Griffin, Kuhl (c), Keown, Sweeney, Stacey, Fridjonsson (sub Kelly 76 mins), Novakovich, Edwards (sub Cardwell 62 mins), Fosu.
Subs: Hyam, Ward, Shaughnessy.
Goals: Fosu 79 mins.
Booked: Kuhl, Griffin, Long.