Callum Sheedy's kicking proved to be the difference as Bristol claimed their first-ever Premiership win at Wasps.
The Bristol fly-half's try cancelled out an early score by Wasps hooker Tom Cruse in a drab first period.
Charlie Atkinson kicked a penalty for Wasps before Joe Launchbury had a try disallowed for a forward pass.
Magnus Bradbury's try put Bristol further in front after a second Sheedy penalty before he kicked a drop-goal as the Bears won 23-8.
The win puts Bristol second in the early Premiership table, a point off leaders Sale, while Wasps are one of four sides still yet to win this season.
The hosts' early pressure paid off as Cruse walked in on six minutes after Atkinson had floated a pass over Piers O'Conor's head.
But that was as good as it got for Wasps as Sheedy followed up a penalty with a try, having got on the end of Rich Lane's break.
Wasps started the better after the interval thanks to Atkinson's penalty, but a forward pass from Tom Willis saw Launchbury's excellent try in the corner chalked off, and with it Wasps' hopes faded.
Two handling errors saw the hosts go from the Bristol 22 to their own as Charles Piutau set up Bradbury for what would prove to be the decisive score.
Brian Byrne impressively got between the ball and the ground as Wasps almost went over with nine minutes left, before Sheedy added a drop-goal four minutes from time.
Wasps head coach Lee Blackett:
"The number of opportunities out there, you look and you reflect and you're thinking, it wasn't like we looked clueless at times, we were creating opportunities.
"We just made far too many mistakes with the ball, that's why I'm constantly saying we've got to improve our skill set and that's what we want from Wasps players.
"I think if you'd seen us in pre-season, I saw us heading in the right direction in terms of that. I think it's a bad day in the office but we have got to be constantly working on that and that is the direction we are going in - we're working really hard on our skills and we've got to work even harder."
Bristol director of rugby Pat Lam:
"It was the first one for us as a group since I arrived but the first win here in the league for the club for 22 years.
"It was a massive marker for us and certainly a monkey off our back. To go back-to-back having beaten them last year at home as well is good.
"It certainly wasn't the prettiest game, but at the end of the day five points were on offer and we took four today and we deprived them of points too, so I am really pleased.
"Our defence and the character of the boys was outstanding, they just worked their way through the adversity."
Wasps: Crossdale; Kibirige, Spink, Odendaal, Bassett; Atkinson, Porter; Hislop, Cruse, Ryan, Launchbury, McDonald, T. Willis, J. Willis, Barbeary.
Replacements: Frost, West, Alo, Cardall, Carr, Robson, Mills, Haydon-Wood.
Bristol: Piutau; Morahan, O'Connor, Bedlow, Bates; Sheedy, Randall; Woolmore, Capon, Sinckler, Joyce, Vui, Jeffries, Heenan, Bradbury.
Replacements: Byrne, Y. Thomas, Lahiff, Holmes, Lewis, Uren, MacGinty, Lane.
Referee: Karl Dickson