Bath scored two second-half tries at Franklin's Gardens as they beat Northampton for their third straight win since the season restarted, sending them fourth in the Premiership.
It was a grim first half with just a penalty each for either side, Wales stand-off Dan Biggar cancelling out Bath's opener from Josh Matavesi.
But Bath full-back Tom de Glanville got over in the left corner on 57 minutes.
Ruaridh McConnochie scored a second for the visitors 10 minutes later.
Sam Matavesi, brother of Bath fly-half Josh, made a handling error and that allowed replacement centre McConnochie, who had been on the pitch five minutes, the chance to cash in with an intervention before dashing in from 30 yards out.
De Glanville's opener, his second try in five days after he scored his first in the Premiership in Saturday's 38-16 win at Leicester, was also finished well.
But the highly-rated 20-year-old, son of former Bath and England centre Phil de Glanville, was injured in the process of scoring and took no further part in the contest.
Former Wales fly-half Rhys Priestland came off the bench to round off the scoring with two successful kicks, converting McConnochie's try and landing a late penalty.
It was only Bath's second win in their last 19 trips to Franklin's Gardens, and it lifted them above Wasps in the battle for the play-offs.
Northampton, still to record a home Premiership win since the turn of the year, made a full 15 changes from Sunday's 27-3 win at London Irish.
They were also forced into one further late change when full-back Harry Mallinder was ruled out with a knee injury, which meant teenager Tommy Freeman started on the wing for his Premiership debut.
Northampton: Tuala; Freeman, Dingwall, Francis, Naiyaravoro; Biggar, Taylor; Auterac, Fish, Franks, Ribbans, Ratuniyarawa, Lawes, Tonks, Harrison (capt).
Replacements: S Matavesi, van Wyk, Painter, Bean, Uru, James, Hutchinson, Collins.
Bath: De Glanville; Rokoduguni, Clark, Redpath, Hamer-Webb; J Matavesi, Chudley; Obano, Walker, Judge, W Spencer, Stooke, Williams, Bayliss (capt), Mercer.
Replacements: Dunn, Boyce, Stuart, Ewels, Reid, B Spencer, Priestland, McConnochie.
Referee: Christophe Ridley.