Bath ran in five tries to move into second place in the Zurich Premiership title race.
Northampton's defeat effectively rules them out of the chase, and they also lost England scrum-half Matt Dawson on the half hour with a rib injury.
At this stage it is not known whether it threatens his chances of facing Wales in the Six Nations on February 3.
Bath have had the luxury of a settled side in recent weeks which has done wonders for their confidence. After the narrow defeat at home to Leicester on Boxing Day they have now accomplished comfortable wins over Saracens and now Northampton.
At half-time when the home side trailed 6-5 having only mustered an Iain Balshaw try in reply to two Paul Grayson penalties, there was no sign of the onslaught to come.
In fact Bath struggled to contain the Saints in the first 10 minutes after the break.
Suddenly, however, Mike Catt found space looping in his own 22 with Kevin Maggs before putting left-wing Tom Voyce through a gap in midfield. Matt Perry was then in support to send scrum-half Gareth Cooper away from 30 metres to finish an 80-metre move.
Perry converted and also added the extra points when Mike Tindall crashed over for the third try on the hour.
Saints came back with a try by the posts from promising young fly-half James Brooks, converted by Grayson, but Perry opened up an eight point gap with a penalty.
The bonus point came courtesy of a Voyce try on 78 minutes and the left-wing ran in his second in injury time from 50 metres, Perry kicking his fourth conversion.
Bath:
Tries: Balshaw, Cooper, Tindall, Voyce 2.
Cons: Perry 4.
Pens: Perry. Bath: Perry, Balshaw, Maggs, Tindall, Voyce, Catt, Cooper,
Emms, Long, Mallett, Haag, Borthwick, G. Thomas, Clarke, Lyle.
Replacements: Berne for Tindall (79), Barnes for Emms (51),
Regan for Long (55), N. Thomas for Clarke (61).
Not Used: Preston, A. Adebayo, Lloyd.
Northampton:
Tries: Brooks.
Cons: Grayson.
Pens: Grayson 2.
Northampton: Grayson, Martin,
Bateman, Allen, Cohen, Brooks,
Dawson, Pagel, Thompson, Stewart, Brouzet, Rodber, Blowers,
Pountney, Lam.
Replacements: Bramhall for Dawson (30), Todd for Pagel (79),
Phillips for Rodber (40), Seely for Lam (61).
Not Used: Brotherstone, Tucker, Webster.
Att: 8,200
Ref: Steve Lander (RFU).