In an 80 minutes packed with end-to-end attacking rugby and a lead which changed hands four times, Elliott's two scores earned him the Travis Perkins man of the match award while Stephen Myler took himself 15 points closer to second place in the Saints' all-time scoring list.
What would have thrilled players, coaches and supporters alike was the way in which Saints kept their cool after conceding 14 points in six second half minutes to go up the field in a bear-pit atmosphere to get the winning score.
However there will be a few things to work on during the coming week, not least in the lineout, which proved to be a less-than-consistent source of possession in the opening quarter.
This was certainly an Achilles Heel in the opening exchanges, Bath coming away with the ball from both of Saints' first two throws to open the scoring via a Tom Heathcote penalty.
But all this did was relieve the position, and when Samu Manoa brilliantly caught Stephen Myler's kick off at full pace it gave Saints the opportunity to strike back immediately.
They did so with a Myler strike, but when some miscommunication at the kick off saw the ball bounce instead of go to hand Semesa Rokoduguni - who had caught the eye playing for the British Army in the 2012 Mobbs Memorial Match - recovered to put Bath back onto the front foot.
Anthony Perenise got within a couple of metres of the line, before brilliant counter-rucking forced the prop to concede a penalty for Myler to clear.
Saints' mistakes had been letting Bath off the hook, especially with the visitors continuing their good start reading the home throws. So the visitors' coaches would have been fuming when the first try came from a similar mistake five metres out from their own line.
George Pisi's intelligent kick to the corner had pushed Bath back, but Rob Webber's threw too high for Mat Gilbert to collect, and with Ben Nutley collecting the loose ball in traffic Saints had an outstanding opportunity. It didn't go to waste either, the ball zipping along the line for Jamie Elliott to finish superbly in the left corner.
The winger also set up Saints' next points, winning a scrum with a tackle on Nick Abendanon on the visitors' 22. Tom Mercey forced a penalty out of Charlie Beech and Myler was on target with the three points.
However all this had done was nullify Heathcote's second success, and there was a let off when the bounce of a ball from a Peter Stringer kick eluded both Elliott and Rokoduguni in the home 22.
The scrum brought Bath a penalty and another three points for Heathcote, but all the luck was going Saints' way as the visitors wasted several try opportunities in the half's dying minutes.
Ben Skirving was pulled back for using Stringer as a shield while diving for the line in the build-up to Heathcote's penalty. Then when Abendanon's clearance stayed infield, Tom Biggs chased and hacked ahead into space. An apparent knock-on on the 22 was waved on but there was no missing Abendanon's fumble as he tried to recover the ball to score.
So Saints started the second period still two points to the good, and despite a dangerous Bath attack at the start of the half three quick-fire Myler penalties took the lead into double figures, rewarding a noticeable increase in pace, power and intensity from the home team.
But Bath weren't finished yet, and a penalty try awarded from a five-metre scrum made it a one-score ball game once again. Referee Luke Pearce's arm went up at the first set piece, but if there had been any doubt about that score there were no such feelings about Bath's second try, six minutes later.
Saints had looked to be capitalising on James Wilson's neat chip against a fragmented Bath rearguard, only for Alex Waller to fling a speculative pass right into the hands of the waiting Rokoduguni, who ran 60 metres to the uprights.
Heathcote made it 20-23 with the straightforward conversion, but the crowd's noise rose, Saints' composure remained, and when Wilson's superbly timed hit on Carl Fearns was followed up by even play at the breakdown, the hosts had the one final opportunity they needed and Elliott raised the roof.
TIMELINE
4mins BATH Pen Heathcote 0-3
9mins SAINTS Pen Myler 3-3
20mins SAINTS Try Elliott 8-3
26mins BATH Pen Heathcore 8-6
32mins SAINTS Pen Myler 11-6
36mins BATH Pen Heathcote 11-9
HALF-TIME SAINTS 11 BATH 9
49mins SAINTS Pen Myler 14-9
54mins SAINTS Pen Myler 17-9
58mins SAINTS Pen Myler 20-9
60mins BATH Try Penalty Con Heathcote 20-16
66mins BATH Try Rokoduguni Con Heathcote 20-23
72mins SAINTS Try Elliott 25-23
FULL-TIME SAINTS 25 BATH 23