Bristol came from 14-0 down to stun second-placed Northampton and move into the Premiership play-off places.
Saints enjoyed a dominant opening 50 minutes, going in front when Harry Mallinder marked his first league start for 15 months with an early try.
James Grayson increased that lead further from the tee, but Rory Hutchinson's sin-binning for a high tackle prompted a dramatic turnaround.
Henry Purdy and Lewis Thiede both crossed to help lift the Bears fourth.
Pat Lam's side also moved to within four points of Northampton, who are now four points adrift of leaders Exeter Chiefs after a second successive defeat at Franklin's Gardens.
Saints had looked on course to respond to their surprise home defeat by London Irish on 24 January, but Hutchinson's yellow card with half an hour to play opened the door for Bristol.
Callum Sheedy landed the subsequent penalty from in front of the posts and, with Hutchinson poised to rejoin the action, Purdy crossed in the corner to pull the Bears to within a score.
Despite the Scotland centre's reintroduction, the visitors crossed for the second time in the space of three minutes when Thiede forced his way over from close range.
Bristol hand to withstand some heavy late pressure but Sheedy's penalty with the final kick of the game added further gloss to the scoreline.
Bristol Bears director of rugby Pat Lam:
"We couldn't carry on playing like we did in the first half as we turned over so much possession and you can't play rugby like that if you want to set any form of standard.
"We conceded 18 turnovers in the first half so we had to flush that effort down the toilet.
"We said at half-time that we needed to be patient as our purple patch would come but even after that, we started kicking the ball away again, which made for a nervous finish.
"Our impact players made a big difference and we showed what we can do as we've come away from the top two sides in the Premiership, Exeter and Northampton with wins."
Northampton Saints director of rugby Chris Boyd:
"It doesn't make me happy as a couple of missed tackles cost us and we couldn't find a way back into it.
"We are still sitting in second place in the table but the advantage we had prior to the Six Nations has now disappeared.
"The combination of internationals going away and injuries are putting a real strain on our roster and now we've lost Alex Moon with a significant leg injury so we are now down to the bare bones in respect of locks. We will have to go out and find another one."
Northampton Saints: Mallinder; Collins, Proctor, Hutchinson, Naiyaravoro; Grayson, Reinach; Waller (co-capt), Haywood, O Franks, Coles, Moon, Eadie, Wood, Harrison (co-capt).
Replacements: Fish, B Franks, Painter, Bean, Onojaife, Mitchell, Dingwall, Tuala.
Sin bin: Hutchinson (50)
Bristol Bears: Piutau; Morahan, O'Conor, Bedlow, Leiua; Sheedy, Randall; Woolmore, Malton, Afoa, Attwood, Vui, Luatua (capt), D Thomas, Hughes.
Replacements: Capon, Y Thomas, Thiede, Joyce, Heenan, Uren, Madigan, Purdy.
Referee: Tom Foley