Saints kept their faint Heineken Cup hopes alive with a gritty 18-12 victory over French side Castres at a foggy Franklin’s Gardens.
But the absence of any tries, and a winning bonus point, could prove key when the best runner-up slots are decided in this season’s competition.
Ulster sealed top spot with a maximum-haul win over Glasgow Warriors at Ravenhill, meaning second is the best Saints can hope for in Pool 4.
Jim Mallinder’s men continually knocked at the Castres door, but only had six penalties to show for their efforts - three each from Stephen Myler and Ryan Lamb.
Castres stayed in contention throughout, thanks to the boot of streetwise scrum-half Rory Kockott and they even emerged unscathed from Anton Peikrishvili’s sin-binning.
The Top 14 side had defied fears about the mental strength of French sides on the road in Europe to claim a deserved point.
But it was a third home game in succession without a try for Saints, who rarely took their foot off the gas, but who failed to find the spark needed to break down the opposition.
Saints left the Castres lineout in tatters early on but it was the French side who earned the first penalty of the game after fine work from Kockott.
But Kockott, who had expertly chipped over the Saints backline before being stopped illegally, skewed the tee kick wide to leave the scores level.
Northampton were posing threats of their own, with Courtney Lawes like a bull in a china shop, smashing all before him.
But Castres again squeezed a penalty out of Saints on the 15-minute mark, and this time Kockott made no mistake to put his team 3-0 up.
Myler levelled things up with a penalty moments later before Soane Tonga’uiha came within inches of scoring his second try in six days with a titanic surge towards the line.
Tonga’uiha and his fellow Saints forwards were engaged in an interesting battle with the heavy Castres pack, with every scrum of a nip-and-tuck nature.
Saints were back in front on the scoreboard on 31 minutes as Myler delivered a delicious kick through the fog to make it 6-3.
The impressive Kockott, who was involved in everything good about Castres, kicked the French level with a penalty.
But the pattern of the game continued as Saints went back up the other end and put the pressure on, forcing tighthead prop Anton Peikrishvili to offend and head to the sin bin.
The French defence remained unflustered, though, and held out to ensure the teams headed in at half-time locked at 6-6.
Castres almost went ahead immediately after the restart as fly-half Daniel Kirkpatrick’s drop goal shaved the upright before going wide.
Saints had made little from the man advantage and were struggling to find the spark in midfield to break down the tough Castres backline.
Peikrishvili re-entered the field of play to provide reinforcements as Northampton started to knock loudly on the opposition door.
But still Castres wouldn’t be beaten from open play, and Myler took the points from a simple penalty as his side failed to break through despite a prolonged period of pressure.
Still Saints hit their head against a white wall as the French side refused to crumble and added to the home fans’ noticeable frustration.
Lamb added three more points from the tee to extend his side’s lead to six points, before Kockott replied with a penalty of his own.
It was stuff the Chuckle Brothers would have been proud of - to me, to you - as Lamb again landed a penalty to make it 15-9 to Saints with nine minutes to go.
Northampton suffered a blow before the end as replacement GJ van Velze was forced off with an injury, but they kept the pressure on to earn a penalty.
Lamb kicked it to deny Castres a losing bonus point their stern defence probably would have merited, as Saints kept their European flame flickering for at least another week.
Saints: Foden; Wilson, G Pisi, Waldouck (May 63), Elliott; Myler (Lamb 57), Dickson (Roberts 63); Tonga’uiha (A Waller 66), Hartley, Doran-Jones (Mercey 57); Manoa, Lawes; Clark, Wood, Dowson (van Velze 57 (Sorenson 75)).
Castres: Dulin; Evans, Cabannes (Sanchou 72), Lamerat (Bonnefond 67), Garvey; Kirkpatrick (Bernard 74), Kockott; Taumopeau (Marmoiton 63), Bonnello (Mach 52), Peikrishvili; Samson (Rolland 72), Tekori, Bornman, Caballero, Claassen (Wannenburg 66).
Referee: George Clancy (IRU)