Bath to face Northampton in English Premiership final
Johann van Graan's team reached their first Premiership final for nine years despite a stirring fightback from Sale at the Recreation Ground.
Sale wiped out an 18-5 deficit before two second-half Finn Russell penalties and a late Niall Annett try powered Bath into next Saturday's title match at Twickenham.
Ted Hill and Beno Obano also scored for Bath, while Russell kicked 16 points from four penalties and two conversions.
Sale also scored three tries as Ben Curry, Tommy Taylor and Tom O'Flaherty all crossed, with George Ford adding two penalties and a conversion.
There was no fairy-tale return to action for Sale and England flanker Tom Curry, who featured for 33 minutes off the bench on his first appearance since the World Cup after undergoing major hip surgery.
Bath took a fourth-minute lead after wing Joe Cokanasiga was obstructed chasing a Ben Spencer kick, with Russell making no mistake from 25 metres out.
The hosts extended their advantage just eight minutes later following a move started and finished by Hill.
Sale needed something from the opening quarter, and they delivered from a first meaningful visit to Bath's 22 when Curry touched down after a powerful lineout drive.
Bath hit back when Obano claimed a try that Russell converted to give them a nine-point lead.
Russell booted a penalty from the halfway line before Sale's Taylor scored from a close-range lineout.
Ford converted and when he kicked a penalty shortly afterwards Sale were firmly back in contention, trailing by just three points at half-time.
A 40-metre penalty by Ford levelled things up early in the second period.
Russell's third successful penalty put Bath ahead again, yet Sale hit back immediately as O'Flaherty gathered Joe Carpenter's kick and touched down.
Sale were ahead for the first time, but another Russell penalty edged Bath one point in front with 14 minutes left.
Bath landed the knockout punch when a driven lineout proved too much for Sale's defence, allowing Annett to score as Russell converted to send the hosts to Twickenham.