A dominant first half was enough for Northampton to beat Bath 22-13 at Franklin's Gardens on Christmas Eve.
Saints led 22-3 at the break and didn't need to score in the second half as they resisted a Bath comeback to claim victory and provisionally move up to third in the standings.
It was a superb first half display from the Saints, scoring three tries through Phil Dowson, Tom Wood and Jamie Elliot, but they will have been disappointed not to have gained the bonus-point.
In a feisty affair, both sides saw two players sin-binned and it was when Samu Manoa and James Downey spent 10 minutes off the field that Bath got themselves back into the game through Francois Louw.
Despite containing many attacking talents in their backline, including Stephen Donald who is steering the ship at fly-half, Bath have been woeful over recent weeks.
But in a mistake-ridden opening against the Saints, they managed to get themselves in front through the boot of Barkley.
However, once an improving Northampton eventually got their game together, they couldn't cope.
Dowson went over for the opening try after good work from Vasily Artemyev and Downey, before a superbly weighted kick from Ryan Lamb helped set-up Wood.
The Saints then extended their advantage to 15-3 when their fly-half converted a penalty opportunity when Nick Abendanon was sin-binned for the visitors.
Two minutes later, a third try from Northampton winger Elliot compounded Bath's misery before the break.
Barkley reduced the deficit just after half-time, but their revival was stalled when Donald was also yellow carded.
But the Saints failed to score the crucial fourth try and were made to pay as Manoa and Downey were sent to the sin-bin, and Louw powered across the whitewash from short-range.
Northampton lifted themselves once more but it was too late to gain the extra point.
Tries: Dowson, Wood, Elliott
Con: Lamb 2
Pens: Barkley 2
Yellow cards: Abendanon (Bath - 30th min); Donald (Bath - 46th min); Manoa (Northampton - 61st min)
Northampton: 15 Ben Foden, 14 Vasily Artemyev, 13 George Pisi, 12 James Downey, 11 Jamie Elliot, 10 Ryan Lamb, 9 Lee Dickson, 8 Roger Wilson, 7 Tom Wood, 6 Phil Dowson, 5 Mark Sorenson, 4 Courtney Lawes, 3 Paul Doran-Jones, 2 Dylan Hartley (capt), 1 Soane Tonga'uiha.
Replacements: 16 Mike Haywood, 17 Alex Waller, 18 Tom Mercey, 19 Samu Manoa, 20 Ben Nutley, 21 Martin Roberts, 22 Stephen Myler, 23 Scott Armstrong.
Bath: 15 Nick Abendanon, 14 Matt Carraro, 13 Ben Williams, 12 Olly Barkley, 11 Matt Banahan, 10 Stephen Donald, 9 Michael Claassens, 8 Francois Louw (c), 7 Guy Mercer, 6 Andy Beattie, 5 Ryan Caldwell, 4 Dave Attwood, 3 David Wilson, 2 Ross Batty, 1 David Flatman.
Replacements: 16 Will Tanner, 17 Nathan Catt, 18 Anthony Perenise, 19 Will Spencer, 20 Josh Ovens, 21 Chris Cook, 22 Tom Heathcote, 23 Jack Cuthbert.
Venue: Franklin's Gardens
Referee: David Rose