Leicester Tigers moved up to third in the Premiership and condemned Northampton to a third consecutive defeat in all competitions.
Anthony Allen scored the Tigers' only try, while Owen Williams was perfect from the tee to contribute 17 points.
Kahn Fotuali'i replied for the hosts and Ethan Waller crossed with Leicester down to 13 men after Ben Youngs and Niki Goneva saw late yellow cards.
But the visitors held on to move above Bath, who lost to Sale on Friday.
The local rivals were involved in a 19-19 draw at Welford Road in October but Leicester were good value for their victory at Franklin's Gardens.
Saints fly-half Will Hooley sent over a penalty to open the scoring but Tigers looked the stronger of the two teams for the remainder of the first period and responded with 13 unanswered points.
After a lengthy delay during which Leicester hooker Tom Youngs claimed he had been bitten during a scrum - referee Wayne Barnes and the television official were unable to clearly spot any wrongdoing - Ben Youngs collected from a ruck and fired a superb pass out wide for centre Allen to touch down for the game's first try.
Welshman Williams converted from the touchline and added two penalties soon afterwards to make it 13-3 to the visitors.
Hooley missed the chance to reduce the deficit, failing with a simple penalty attempt, and it soon got worse for Northampton when captain Dylan Hartley was forced off with an injury.
But Samoa international scrum-half Fotuali'i gave the home side a boost heading into the interval, darting through a gap 10 metres from the line to score his first Premiership try.
Hooley's poor day with the boot continued after the break, the youngster missing another presentable chance for three points.
James Wilson, Hooley's replacement from the bench, found the mark in between two more efforts from the impressive Williams, who extended his excellent kicking record with a fifth successful penalty of the afternoon after the hosts were caught offside.
Leicester played the final five minutes with 13 men when Ben Youngs and Goneva were shown yellow cards, Youngs for killing the ball and Goneva for a high tackle.
Northampton used the extra two players to their advantage to work an overlap for Waller's late score, but Richard Cockerill's men saw out a tense finale to claim victory.
However, there was more controversy as Barnes appeared to signal the end of the game before the clock had ticked around to 80 minutes.
Northampton Saints director of rugby Jim Mallinder on the Tom Youngs incident:
"I don't think there was anything in it. I would be very surprised. I haven't looked into it."
On referee Wayne Barnes appearing to blow for full-time fractionally early:
"Wayne told me afterwards he was told the game was over. I don't quite know who told him that. I think he is in charge. We were disappointed with that.
"There was time on the clock. We were pretty disappointed, at 15 against 13, not to have a lineout five metres out."
Leicester Tigers director of rugby Richard Cockerill:
"Tom said that he was bitten on the hand by someone he didn't elaborate on.
"The referee referred it to the TMO, and looked at it and there was clearly nothing to look at. Maybe Tom was mistaken. It will be looked at by the relevant people.
"It's a good win for us. I thought we played some really good stuff. By and large, we controlled the game really well."
Northampton Saints: Foden; Elliott, G. Pisi, Burrell, North; Hooley, Fotuali'i; A. Waller, Hartley, Ma'afu; Lawes, C. Day; Clark, Dowson, Wood.
Replacements: Haywood, E. Waller, Mercey, Craig, van Velze, L. Dickson, Wilson, K. Pisi.
Leicester Tigers: Hamilton; Goneva, Tuilagi, Allen, Thompstone; O. Williams, B. Youngs; Ayerza, T. Youngs, Mulipola; Deacon, Slater; Gibson, Salvi, Crane.
Replacements: Hawkins, Stankovich, Balmain, Kitchener, Matera, Harrison, Flood, Smith.
Sin Bin: B. Youngs (74), Goneva (76).
Referee: Wayne Barnes