Northampton number eight Teimana Harrison's sending off proved pivotal as Bath booked their place in the final of the Anglo-Welsh Cup.
Saints were leading 12-10 in dreadful conditions at The Rec when Harrison saw red for an off-the-ball altercation with Bath prop Nathan Catt in the 67th minute.
Josh Lewis then split the posts from the resulting penalty to secure a 13-12 victory for Bath, who will take on either Exeter or Newcastle in next Sunday's showpiece at Kingsholm.
Bath fly-half Lewis had earlier opened the scoring with another three-pointer while he added the extras to Levi Douglas' first-half touchdown, which proved to be the only try of the match.
All of Northampton's points came from the boot of Stephen Myler, who kicked four penalties.
The hosts came into this fixture on the back of a 100 percent record in the group stages -- with four wins from four -- and took a fifth-minute lead courtesy of Lewis' penalty after Northampton hooker Reece Marshall was penalised for a head-high challenge on opposite number Nathan Charles.
Bath continued to have the better of the early exchanges and went close to scoring the first try when Tom Homer charged down a clearance from Ahsee Tuala, but Nafi Tuitavake was alert to the danger and the visitors kept their line intact.
Northampton suffered a setback when flanker Heinrich Brussow departed with a leg injury before Lewis was narrowly off target with a 40-metre drop goal attempt.
However, Lewis still had a major influence on the opening quarter with a couple of skilfully judged touch-finders keeping Saints penned in their own half, from where the hosts were rewarded with the first try.
The visitors lost a line-out in their own 22 for Tom Ellis to boot the ball forward, with Douglas scrambling to win the touchdown. Lewis converted to give his side a 10-0 lead at the end of the first quarter.
Bath bungled the restart and conceded a penalty for Myler to put them on the scoreboard with a simple penalty. Myler was then instrumental in Saints' second score when his neat chip was collected by Rob Horne, who burst into the Bath 22. The home side were again penalised and Myler was successful with his kick.
Northampton's fortunes certainly improved in the second quarter as they reduced the arrears to a single point with a third penalty from Myler.
After Bath wing Cooper Vuna had knocked on, replacement Ben Nutley stormed away and when he was brought down, the hosts were penalised and Lewis was yellow carded.
After the restart, Lewis returned but missed a penalty chance before he crucially lost his side 50 metres by kicking the ball dead.
This gave Saints a scrum 40 metres out and after Bath were penalised, Myler's kick put Northampton into the lead for the first time in the contest.
But Harrison's moment of madness handed the momentum back to Bath, who were celebrating at the fulltime whistle after keeping their line in tact once Lewis' kick had given them a slender advantage.