Northampton kept their slim chances of making the Heineken Cup quarter-finals alive by beating Castres 18-12 in a try-less clash at Franklin's Gardens on Friday.
Saints must now go in search of a bonus-point victory over Glasgow next weekend and hope that is enough tp qualify as one of the best pool runners-up.
That scenario looks like a long shot but Northampton will see a silver lining in the fantastic performance from England lock Courtney Lawes, who was named Man of the Match.
In what was far from a classic encounter, two penalties apiece from Stephen Myler and Rory Kockott saw the sides go into the break level at 6-6. But the respective boots of Myler and Ryan Lamb garnered the win for Northampton, even though Kockott added a pair of three-pointers in the second period.
Despite going down at home to Ulster 25-6 in round three, the Saints hit back at their critics in the return encounter, overcoming the Irish province 10-9 at Ravenhill.
Although Northampton were still able to qualify from the pool as one of the best runners-up, the visitors were also in the race for the quarter-finals having emerged victorious in three of their games this season.
And they moved into the lead through South African scrum-half Kockott before Northampton hit back and levelled through a Myler penalty.
Northampton's fly-half then added his second from the tee to take the score to 6-3 in the home team's favour, but another three-pointer from Castres' half-back restored parity.
Anton Peikrishvili was sin-binned for the Top 14 outfit just before half-time, but the Saints failed to take advantage of the extra man.
Jim Mallinder's men eventually retook the lead after 50 minutes when Myler continued his form with the boot.
Substitute Lamb then extended the gap to 12-6 as the hosts took control. Kockott and Lamb then traded two penalties apiece late in the game as Northampton came away with the win.
Pens: Myler 3, Lamb 3
Pens: Kockott 4
Yellow card: Peikrishvili
Northampton: 15 Ben Foden, 14 James Wilson, 13 George Pisi, 12 Dom Waldouck, 11 Jamie Elliott, 10 Stephen Myler, 9 Lee Dickson, 8 Phil Dowson, 7 Tom Wood, 6 Calum Clark, 5 Courtney Lawes, 4 Samu Manoa, 3 Paul Doran-Jones, 2 Dylan Hartley (capt), 1 Soane Tonga'uiha.
Replacements: 16 Mike Haywood, 17 Alex Waller, 18 Tom Mercey, 19 Mark Sorenson, 20 GJ Van Velze, 21 Martin Roberts, 22 Ryan Lamb, 23 Tom May.
Castres: 15 Brice Dulin, 14 Max Evans, 13 Romain Cabannes, 12 Rémi Lamerat, 11 Marcel Garvey, 10 Daniel Kirkpatrick, 9 Rory Kockott, 8 Antonie Claassen, 7 Yannick Caballero, 6 Jannie Bornman, 5 Iosefa Tekori, 4 Christophe Samson, 3 Anton Peikrishvili, 2 Mathieu Bonello, 1 Yannick Forestier.
Replacements: 16 Brice Mach, 17 Saimone Taumoepeau, 18 Michaël Coetzee, 19 Matthias Rolland, 20 Paul Bonnefond, 21 Pedrie Wannenburg, 22 Pierre Bernard, 23 Thomas Sanchou.
Venue: Franklin's Gardens
Referee: George Clancy (Ireland)
Assistant referees: Paul Haycock (Ireland), Michael Black (Ireland)
Television match official: Peter Ferguson (Ireland)
Timekeeper: Matthew Peters (England)
Citing commissioner: Douglas Hunter (Scotland)
Assessor: Fergus Neil (Scotland)