Bath survived conceding a try inside the opening minute and a red card to end Northampton's unbeaten start.
Rory Hutchinson charged down Rhys Priestland's kick to score early and James Grayson's penalty put Saints 8-0 up after as many minutes.
Bath fought back through Will Chudley's try and a Priestland penalty put them ahead at the break.
Aled Brew saw red before Charlie Ewels and Zach Mercer crossed either side of Tom Wood's finish.
More to follow.
Bath: Burns; Rokoduguni, Wright, Roberts, Brew; Priestland, Chudley; Obano, Dunn, Stuart; McNally, Ewels, Ellis, Bayliss, Mercer.
Replacements: Walker, Boyce, Judge, Stooke, Williams, Cook, Willison, Hamer-Webb.
Northampton Saints: Furbank; Collins, Dingwall, Hutchinson, Naiyaravoro; Grayson, Taylor, Franks, Haywood, Painter; Ribbans, Moon, Wood, Gibson, Harrison.
Replacements: Fish; Trinder, Hill, Ratuniyarawa, Coles, Mitchell, Strachan, Tuala,
Referee: Ian Tempest.