Paul Diggin's try sealed victory for Northampton that lifted them into fourth place in the Premiership at play-off rivals Exeter's expense.
Stephen Myler put Saints 3-0 ahead but Gonzalo Camacho went over for Chiefs and Ignacio Mieres converted, before adding three points.
Chris Ashton touched down and Myler's second penalty put Saints in front.
Diggin went over to extend the gap to eight points before Richard Baxter secured Chiefs' losing bonus point.
Exeter must now hope Saints fail to beat Worcester on the final day of the season to have any chance of reaching the play-offs for the first time in their history.
Saints made a strong start and took the lead after five minutes through Myler's opening penalty.
But Chiefs hit back almost immediately as Haydn Thomas took a quick tap penalty before finding Camacho, who was adjudged by television match official Geoff Warren to have successfully stretched for the line.
Fellow Argentina international Mieres then added the extras before adding three more points with the boot to give Exeter a seven-point lead at the break.
Ben Moon went close to adding to the hosts' score but he had a try ruled out for a knock-on.
Saints started the second half in similar fashion to the first and this time their pressure paid off with Northampton's backs linking up well to put Ashton through in the corner.
Myler missed his second conversion attempt of the afternoon but he soon put Northampton back in front with a penalty kick.
The visitors opened up an eight-point gap after winning a strike against the head at a 22-metre scrum which allowed Diggin to go over in the corner with Myler adding the extras.
Exeter responded as Baxter picked up at the back of a scrum to score his second try of the season in his 350th Chiefs appearance.
But it was too late for the hosts to stage a turnaround and they were left to make do with a losing bonus point.
VIEWS FROM THE DRESSING ROOM
Exeter head coach Rob Baxter:
"You can be as pleased as you like to be playing in these big games but once they are within touching distance, and pretty close to getting a result, it is disappointing when you come up short.
"Let's face facts. We are thrilled to be playing in such an important game at this stage of the season but there is also the reality. We played very well in the first half and we had a lot of pressure moments but we didn't convert them.
"We let things slip a bit, particularly at the start of the second half and then we struggled to get back in to the management of the game. We will sit down with the guys and ask why we went into our shells a little bit.
"I think it is unlikely that Worcester will go to Northampton and win but, having said that, it is nothing to do with us now. Our job is to get these guys ready for a very big game in two weeks' time at Saracens."
Northampton director of rugby Jim Mallinder:
"It's good that it's all in our hands but we can't worry too much about the semi-final.
"That is where we want to be, but we have to make sure that we beat Worcester because I know that Exeter won't give up at Saracens.
"It would have been a massive disappointment if we hadn't won but we said at the beginning of this season that it was going to difficult in World Cup year with a lot of players out - ourselves and Leicester in particular."
Exeter: Dollman; Camacho, Rennie, Shoemark, Jess; Mieres, Thomas; Moon, Whitehead, Tui; Hayes (capt), Hanks; Johnson, Scaysbrook, Baxter.
Replacements: Naqelevuki for Rennie (64), Barrett for Thomas (67), Sturgess for Moon (62), Clark for Whitehead (68), Mitchell for Tui (68), Muldowney for Hanks (67), White for Johnson (67).Not Used: Steenson.
Northampton: Foden; Ashton, Pisi, Downey, Diggin; Myler, Dickson (capt); Tonga'uiha, Long, Mujati; Sorenson, Day; Craig, Dowson, Wilson.
Replacements: Waller for Tonga'uiha (67), McMillian for Long (70), Doran-Jones for Mujati (60), Nutley for Craig (70).Not Used: Harrison, Roberts, Lamb, May.
Ref: Andrew Small (RFU).