|Northampton: (21) 31|
|Tries: Francis, Biggar, Dingwall, Reinach Cons: Biggar 4 Pens: Biggar|
|Exeter: (14) 28|
|Tries: Penalty try, Cordero, Moon, Kvesic Cons: Steenson 3|
Northampton shocked Premiership leaders Exeter as they climbed to fourth in the table with a battling bonus-point win.
Without England captain Dylan Hartley, who pulled out with "a grumbly knee", Saints were two tries up in 10 minutes through Piers Francis and Dan Biggar.
After Exeter pressure brought a penalty try, Santiago Cordero crossed to level.
Ben Moon scored after Fraser Dingwall restored Saints' lead and Matt Kvesic's try earned two bonus points but Cobus Reinach, then Biggar's penalty won it.
Exeter had the chance to extend their lead at the top of the table, following last Saturday's win over previously unbeaten Saracens. But they managed to edge further clear only by those two injury-time points as they slipped to only their second Premiership defeat of the season.
Victory came at a cost for Northampton, who lost England centre Francis when, after scoring inside the second minute, he dislocated his shoulder just three minutes later, to be replaced by Dingwall.
He is expected to be out for "a while" - a painful end to a night which had started so well when he latched on to a smooth exchange of passes to go in under the posts.
Biggar rapidly added a second try and, although the Wales fly-half was wincing in pain late on with what appears to be a hip knock, it is not thought to be serious.
He scored a try and kicked four conversions and what proved the match-winning penalty for a 16-point individual haul, following his 20 points worth of kicks in last Friday's 32-6 win at Worcester.
Exeter's main plus point was the continued good form of England contender Kvesic, who was almost everywhere on the park and had a hand in everything Exeter did well at Franklin's Gardens.
It might have been different for the visitors if centre Ollie Devoto had not been denied a try early in the second half when he clearly crossed the line only for the television match official to rule that he had somehow not grounded the ball.
But, after prop Moon had crowned a period of sustained pressure to score the Chiefs' third try, they were stung by the try of the night from Reinach.
The scrum-half timed his steal off the back of an Exeter line-out to perfection before racing 60 yards to score his second interception try in eight days - and his fifth Premiership try in four matches.
Biggar's penalty earned a 10-point cushion after Luke Cowan-Dickie's late yellow card just two minutes after coming on, for a tip tackle on Saints' England lock Courtney Lawes. And it was needed too, when Kvesic crossed and Steenson converted to narrow the gap two minutes into added time.
Dylan Hartley's late withdrawal
Northampton director of rugby Chris Boyd says that Dylan Hartley's knee injury "isn't that serious" as to suggest that his Six Nations participation is in doubt.
Saints left it until just before the game to reveal the withdrawal of the injured England captain who is battling with Saracens' Jamie George for a place in Eddie Jones' first-choice starting XV.
"He's succumbed to a grumbly knee which has been irritating him for a bit," Boyd told BBC Radio 5 live.
"Even with all that experience, you can't go into a game against a team like Exeter when you're not quite right.
"We've taken a precautionary view on it and withdrawn him until he's ready to get back and give it full crack again.
"He's consulted with some medical people but we'll go on how he presents, not what the pictures show."
England are scheduled to start their Six Nations campaign against reigning champions Ireland in Dublin on Saturday, 2 February (16:45 GMT).
Exeter director of rugby Rob Baxter:
"They turned up in a better frame of mind than us and were more committed so I have no complaints about the result.
"We've got to look at ourselves. Had we rolled over another try and nicked a result that would just have covered up a few deficiencies.
"It's a dog fight at the bottom of the table and those in the relegation battle are coming out fighting with nothing to lose. It's a bit of a different mentality than trying to get into the top four and we need to engage with that.
"We are lacking a bit of consistency and we'll need to address that in the week by tweaking a few things as Bristol will be coming out in the same way next week."
Northampton director of rugby Chris Boyd:
"We've been going north in terms of performances. It hasn't been showing up in the results column. But it's a good Christmas present to pick up nine points in two games.
"The result will do wonders for our self belief as we've lacked a bit of that.
"It's getting better all the time as we were playing 20-30 good, then 20 minutes bad.
"The tackle (Luke Cowan-Dickie) went past horizontal and it was pretty clear cut. If that's not a red card, I don't know what is."
Northampton: Tuala; Collins, Francis, Burrell, Naiyaravoro; Biggar, Reinach; Waller (capt), Marshall, Hill, Ribbans, Lawes, Gibson, Ludlam, Harrison.
Replacements: Dingwall for Francis (5), Van Wyk for Waller (53), Franks for Hill (53), Wood for Gibson (55), Brussow for Ludlam (55).
Not Used: Ratuniyarawa, Mitchell.
Sin bin: Waller (36).
Exeter: Simmonds; Cordero, Whitten, Devoto, O'Flaherty; Steenson (capt), Maunder; Moon, Taione, Williams, Lees, Skinner, Lonsdale, Armand, Kvesic.
Replacements: Hepburn for Moon (54), Francis for Williams (54), White for Devoto (55), Slade for Maunder (55), Cowan-Dickie for Taione (60), Fish for Marshall (60), Lawday for Lonsdale (70).
Not Used: J Hill, Dollman.
Sin Bin: Cowan-Dickie (62).
Referee: Ian Tempest.
For the latest rugby union news follow @bbcrugbyunion on Twitter.