Bristol won a dramatic and controversial Gallagher Premiership clash at Northampton which saw the home side end the game with just 11 men on the field.
A topsy-turvy game saw tries from wings Taqele Naiyaravoro and Ahess Tuala plus full-back George Furbank and scrum-half Cobus Reinach, along with two Piers Francis conversions against tries for lock Joe Batley, number eight Jordan Crane and replacement Harry Randell, plus two Luke Daniels conversions.
Then, in added time, Piers O'Connor went over for a Bristol bonus-point try, with replacement Ian Madigan landing a conversion to win it 26-24, inspiring boos from the home faithful.
Bristol got off to a flying start as excellent work down the left from scrum-half Andy Uren and lock Chris Vui sent Batley to run in from 22 metres.
Daniels came close when he dashed from the Saints' 10-metre line to be held up just short but, from a resulting scrum, centre Siale Piutau came within a metre before Crane just managed to score. Daniels' conversion put Bristol 12-0 ahead.
Northampton were at sixes and sevens but they managed to regroup and began to get their act back together.
Bristol's big-money signing Charles Piuatau went off with another injury of a troubled season, but another giant player came to the fore as the Saints upped the ante.
Naiyaravoro was a big part of that as he became huge thorn in Bristol's side throughout the match, always looking to use his power and pace on the left and down the middle.
The big Fiji-born winger bashed his way upfield a number of times and came within a metre of scoring before visiting hooker Harry Thacker grabbed the giant and forced a knock-on.
But he would not be denied and, after Northampton pressure in the 22, Grayson set Naiyaravoro off to just touch down in the corner.
And the home side roared to a five-point lead by the hour as they also secured a try bonus point.
Two touchdowns in a couple of minutes from Tuala, a run-in from 15 metres after long Grayson pass, and then a piece of magic from Furbank to cut inside the Bristol defence, propelled Northampton 17-12 in front.
Bristol, who had been looking decidedly second-best since they went ahead, found a spark when centre O'Connor dashed through a Saints midfield gap and ran from his own 10-metre line before sending Randall over from 22 metres.
Daniels converted but the 19-17 lead lasted three minutes as Uren committed a horrendous error when throwing an interception pass from a line-out on the Bristol 22 straight into Reinach's hands. He went under the posts for the fourth Saints touchdown as Francis added the extras.
Stout defence kept Bristol in it as Northampton failed to capitalise on their territory and possession.
And the visitors hit back as they looked to win the match in the closing minutes.
Amazingly, Saints ended the game with 11 men as Reinach, replacements Jamie Gibson and Alex Waller plus captain Tom Wood were sin-binned in the final minutes as Bristol piled on the pressure.
Bristol drew level when O'Connor ran over from 10 metres for his side's fourth try before Madigan boomed the conversion to win it for the West Country side.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '5be7907a-583d-41ea-a6ac-67191c4fe8a0');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:uk');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:rugby-union');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'O\u2019Connor and Madigan late show sees Bears beat Saints'});