Exeter secured a place in the LV= Cup final at their own Sandy Park ground after beating Bath 22-19 to secure a shot at a first major trophy in their 143-year history.
Full-back Luke Arscott scored a brace of tries and burly Tongan wing Fetu'u Vainikolo weighed in with a spectacular effort from his own half as they overhauled the home side, who had led 13-8 at half-time, to set up a final meeting with Northampton.
The semi-final got off to a rip-roaring start as Bath number eight Leroy Houston scored a first-minute try, converted by fly-half Tom Heathcote whose goal-kicking helped keep his side in front for nearly an hour. But Exeter, dangerous with ball in hand throughout, took control in the second half.
There was still a nervy moment on the final whistle, however, as Heathcote lined up a kick to take the match into extra-time - but it fell short.
Exeter had not beaten Bath since January 1978 and could not have had a worse start at the Recreation Ground.
Henry Slade's kick-off failed to make the 10-metre line but Guy Mercer claimed the ball and Bath broke left. Nick Abendanon surged through a gap from Heathcote's pass, fed Horacio Agulla and when the Argentinian wing was tackled, Houston was on hand to score in the corner - all in 29 seconds. Heathcote added the extras.
Bath then saw precious little of the ball for the next five minutes and a period of intense pressure paid off for Exeter when Slade kicked a penalty. There was no let-up after that either - until Bath broke out through Houston, Semesa Rokoduguni and Nathan Catt to earn a penalty kicked by Heathcote.
Another surging run by Catt found space behind the Exeter defence and Martin Roberts went on a sniping run, supported by Mercer but referee Tim Wigglesworth penalised him for holding on.
In bright sunshine on perfect pitch, both sides were quick to counter and Bath were so stretched from one break-out that Gavin Henson was sin-binned for handling the ball at a ruck on his own 22.
Exeter went for the kill and were rewarded in the 26th minute when Arscott took an inside pass from Tom James to score in the other corner, although Slade's conversion attempt was wide. The fly-half also missed a penalty soon afterwards but Heathcote responded almost immediately with a simple kick to send Bath in at half-time with a 13-8 advantage.
The fly-half extended the lead to 16-8 soon after the break but then presented Arscott with a try out of the blue. It was a more than hopeful chip over the top and the Exeter full-back took the ball at pace, sprinting through the traffic to the posts with Slade adding the points.
Exeter were still a point adrift - but not for long. Again they cleared downfield but this time Arscott fed replacement wing Vainikolo who left Francois Louw, Henson and two other Bath defenders floundering as he sped 55 metres for the try, again converted by Slade.
Heathcote maintained his 100 per cent from the tee to cut Exeter's lead to three points just after the hour mark.
Bath desperately looked for a try to snatch the tie - or at least a penalty to take the tie into extra-time - but a serious injury to Exeter replacement forward James Hanks took the sting out of the last few minutes.
Heathcote had not missed a single kick when given a penalty chance with the clock at zero but this time it was just out of his range.