Bristol Bears came out firing after the Premiership break, scoring seven tries to end leaders Northampton’s 10-game winning streak.
Tries from Joe Batley and Harry Randall helped give Bristol an early 17-0 lead.
Two replies from Ollie Sleightholme gave Saints hope but Kyle Sinckler and James Dun sealed Bristol’s bonus point.
Max Malins, Fred Davies and Gabriel Ibitoye then added three more tries for the Bears either side of Jake Garside’s Northampton consolation.
Northampton remain seven points clear at the top of the table although, with three fixtures still to come on Saturday and Sunday their lead could be reduced. Bristol put themselves right in the mix for the top four after moving from eighth up to sixth.
This was the Bears’ third consecutive Premiership win against Saints and, after 54 days with no game, they appeared to benefit from the break more.
Batley charged down a clearance from Saints scrum-half Archie McParland to open the scoring, before MacGinty’s penalty made it 10-0.
Northampton’s ill discipline, however, proved more costly – they conceded 14 penalties to Bristol’s six – and Sinckler rolled over for Bristol’s third try after Ludlum was sent to the sin-bin for a side entry in a maul.
The fixture has long proved high scoring with 60, 70, 61 and 76 points in the last four meetings.