A Duhan van der Merwe-inspired Worcester came from behind to beat Gloucester and reach their first ever Premiership Rugby Cup final.
Gloucester led at half-time through tries from Cameron Jordan and Jake Morris, but Tom Howe and Gareth Simpson scores kept Warriors in the game.
Van der Merwe scored, and assisted another Simpson try in the second half, to turn the semi-final in their favour.
A penalty try and late Niall Annett score saw Warriors home.
The result means Worcester will play London Irish in the final at the Brentford Community Stadium on 17 May, after they beat Leicester on Tuesday.
Worcester picked a far more experienced team than Gloucester, naming regular first-team players like British and Irish Lion Van der Merwe and Sione Valianu.
But it was a young Gloucester side, featuring 18 academy products in their matchday 23, who were more convincing in a captivating first half.
Jordan and Morris' first-half tries, earned through disciplined and relentless forward work, was met with an error-strewn Worcester, relying on counter-attacks and the individual brilliance of Howe and Simpson.
The game changed completely after half-time, with Worcester playing with structure and control and George Skivington's Gloucester making the mistakes.
Van der Merwe was involved twice as Simpson ran in early in the second half, before using his power straight from the line-out to take Warriors into the lead.
The penalty try was followed by a Ben Morgan score for Gloucester which threatened to set up a blockbuster finish.
But Annett's late try in the corner sealed Worcester's victory in what was an entertaining and exciting semi-final at Kingsholm, full of running rugby and endeavour.
Gloucester will return to fighting for a Premiership play-off spot as they face Bath on Saturday, while Worcester host Saracens this weekend.
Gloucester assistant coach Tim Taylor told BBC Radio Gloucestershire:
"I'm tremendously proud of the boys, we showed excellent fight throughout the whole 80 minutes, and even though we didn't get any flow throughout the second half, we kept trying.
"Defensively I thought we were really connected, but it's important we learn about set-piece and learn around our kick game.
"What an experience for them to play against a Premiership side, to play in front of a great crowd at Kingsholm will be so important for them.
"I'm so excited about this group, we've got a great crop there. The work they put in to prepare the first team is vital, and there will be opportunities for them."
Worcester assistant coach Jonny Goodridge told BBC Hereford & Worcester:
"We came here with an incredibly strong squad, but did play a lot of young and inexperienced players who really stood up.
"To weather the storm that came in the first half, with a vibrant crowd, and then kick on in the second half, was testament to them.
"Duhan van der Merwe wanted to play in this game, he's a class player. He will suck defenders in and have a big impact on the game.
"It's so good to see so many Worcester fans here tonight. I imagine it is hard being a Warriors supporter week in, week out, and when you get nights like this you've just got to enjoy it."
Gloucester: Moyle; A Morgan, Hillman-Cooper, Kveseladze, Morris; Barton, Varney; Knight, Walker, Ford-Robinson, Clark, Jordan, Thomas, Clement, Bartlett.
Replacements: Blake, Adkins, O'Connor, Nixon, Gray, Jones, Adderly-Jones, Dunn.
Worcester: Heward, Howe, Hearle, Atkinson, Van der Merwe, F Smith, Simpson, Waller, Miller, Owlett, A Kitchener, Scott, Forsythe, Lewis, Vailanu.
Replacements: Annett, Owen, Judge, G Kitchener, Hatherell, Wynn, Shillcock, Venter.
Referee: Hamish Smales (RFU).