It took a 65-metre interception try from the centre Seamus Mallon to kill off the contest in the 73rd minute, but any other result would have done an injustice to the visitors.
The Saints set off with pace on a dry, balmy afternoon. But the first half ended amid a sustained opening of the heavens that caused a tactical reassessment for both sides.
Spencer looked full of verve and vitality in the opening exchanges, prompting his team-mates with deft touches and an eye for the chance. That approach brought an early reward as Bath's latest recruit, Salesi Finau, killed the ball in the third minute. It was the wing's first touch after leaving Llanelli Scarlets.
Watching Bruce Reihana kicking the resultant penalty rubbed salt into Finau's wounds, as he did so from the sin-bin courtesy of the referee David Rose's decisive attitude towards the Tongan's professional foul.
Olly Barkley equalised after seven minutes before he and Reihana, the Saints captain, traded another shot each at goal, the Bath centre's effort coming while the Saints No 8 Daniel Browne was in the sin-bin for a dangerous charge on James Scaysbrook at a ruck.
Having played with a little more adventure and applied the greater pressure, the visitors deserved the 9-6 half-time lead that Reihana's third penalty brought. Bath were ruing Barkley's three fluffed efforts in reply.
The centre's yips prompted Bath to ask their Australian fly-half Chris Malone to take the first post-break pot at the posts, but after he hit an upright the responsibility was returned to Barkley, who responded to Reihana's fourth success by finding his range and target. That made the score 12-9 to the visitors.
Barkley's attempt to level the scores might well make it on to television screens as a bit of a bloomer, the ball ending up only 10 metres ahead of the point from which it was kicked and at the feet of an opponent.
But Malone had to claim the blame for the game's defining moment as he gifted a pass to Mallon. The ex-Ulster player had the pace to dash untouched to the line for the score that killed off Bath's hopes of a comeback.
The hosts finished the game as they started it, a man down, this time without the England lock Danny Grewcock, who was sent to the sin-bin for stamping, on the advice of a touch judge.
Bath: M Perry (R Davis, 40-48); S Finau, A Higgins, O Barkley, F Welsh; C Malone (A Dunne, 73), M Wood; D Barnes (M Stevens, 59), L Mears, D Bell, S Borthwick (capt; R Fidler, 32-40; 58-62), D Grewcock, A Beattie, I Fea'unati (G Delve, 70), J Scaysbrook.
Northampton: B Reihana (capt); S Lamont, J Clarke, S Mallon, B Cohen; C Spencer, M Robinson; T Smith, D Hartley (S Thompson, 40), B Sturgess (C Budgen, 64), M Lord, Damien Browne, M Soden, Daniel Browne (B Lewitt, 59), D Fox.
Referee: D Rose (Warwickshire).