Aled Thomas came off the bench to score 21 points as London Welsh moved to within three points of Championship leaders Worcester Warriors
The World Cup winning Sevens fly half replaced Gordon Ross on 19 minutes after the former Scotland fly half had earlier dived over to help the Exiles in to an 8-6 lead.
Thomas then took centre stage, converting his own try before adding a penalty – in response to a third penalty from Bristol number ten Nicky Little – to see Welsh take an 18-9 lead into the break.
However, when home prop Shawn Pittman was yellow carded and Bristol captain Iain Grieve was driven over it looked as if they balance had swung in the away side’s favour.
But Thomas’s charge down of Little’s clearance and try proved the game’s turning point, and Marland Yarde and Liam Gibson put the seal on Welsh’s biggest win over Bristol for 110 years and their first since February 2004.
Worcester’s surprise slip up at home to Cornish Pirates the previous evening had give the Exiles the chance to close the gap at the top, and they did so in style by notching up their fourth consecutive bonus-point win of the season at Old Deer Park.
A cagey opening was broken by an acrobatic lineout take by Matt Corker and Hudson Tonga’uiha hitting the Bristol defensive line with venom.
The Tongan international centre popped up again as Welsh, sensing an opportunity, upped the tempo, and along with Corker and Simon Whatling went close before captain Ross found a gap and squeezed through to touch down.
The former Scotland fly half couldn’t add the conversion but made amends two minutes later with a sweetly struck penalty.
A Little penalty got Bristol on the board, following Jack Adam’s break down the right wing, and Welsh were penalised, but then worryingly for the home Ross was left in a heap on half-way after subsequently kicking-off.
The Welsh playmaker regained his feet but only for matter of minutes before being replaced by Thomas.
Welsh were showing their intent to run it from deep, but Bristol were also dispalying signs of settling and when Mariano Sambucetti slipped a tackle to break into the Welsh 22, Ben Russell was penalised for side entry and Little closed the gap to just two.
Bristol’s power was bringing them back into the game after Welsh’s flying start, but Little then missed the opportunity to nudge them ahead with his third attempt at the uprights.
When Grieve set off on a typical gallop, Welsh were grateful for a knock on as the Bristol captain looked to offload having burst through several tackles.
Welsh were on the back foot, but against the run of play they suddenly stretched their lead thanks to a superb piece of vision from Nick Runciman.
From a messy scrum, the Welsh number nine spotted no one at home for Bristol and his clever chip was collected by Thomas, who then converted his own try to give Welsh a 15-6.
But that only seemed to spark Bristol and they hit back with vigour with Runciman then turning try saver to deny George Watkins in the corner.
The pressure eventually told, however, when Little stroked over his third penalty from in front of the posts, only for Thomas to reply for Welsh with the last kick of the half, although it was three points that owed everything to the strength of Simon Whatling who broke the line and fended off several tackles before Bristol infringed.
The opening ten minutes of the second half would be all Welsh, but they would have nothing to show for having camped themselves in the Bristol 22.
Josh Drauniniu looked in for his tenth try of the season, having cut inside twice, but lost the ball as he stretched for the line.
But Bristol dug deep and when Welsh prop Shawn Pittman was sinbinned, Little found a good touch. Darren Barry secured clean lineout ball and Grieve was driven over. From desperately defending their own line, Bristol were now in the ascendancy and trailed by just four with Welsh down to 14-men.
The Exiles seemed content to see out the remainder of Pittman’s sinbinning, but with the clock ticking down, some spirited tackling put Bristol on the back foot and Thomas was quick out of the blocks to charge down Little’s attempted clearance.
The whole of Old Deer Park seemed to hold its breath on the bounce….which proved kind for the Welshman and he collected before diving over. Thomas added the extras and with Pittman back on the field Welsh went for the jugular, and this time Bristol could not hold out.
On loan London Irish scrum half Marland Yarde marked his first appearance for Welsh with a try with his first touch of the ball, and with the home side dominant, and seemingly Bristol resigned to the inevitable, Liam Gibson scrambled over for his sixth try of the season.
Welsh now travel to Bedford Blues on Friday night Live on Sky Sports.
London Welsh scorers:
Tries: Thomas (2), Ross, Yarde, Gibson; Cons: Thomas (4); Pens: Thomas.
Bristol scorers:
Tries: Grieve; Pens: Little (3).
London Welsh: Errie Claassens, Dom Shabbo, Hudson Tonga’uiha, Simon Whatling, Josh Drauniniu, Gordon Ross, Nick Runciman, Shawn Pittman, Vili Ma’asi, Lorne Ward,
Martin Purdy, Matt Corker, Dan Williams, Lee Beach, Ben Russell.
Replacements: Aled Thomas for Ross (18min), Epi Taione for Williams (47min), Marland Yarde for Shabbo (60min), Liam Gibson for Drauniniu (64min), Marc Breeze for Ma’asi (64min), Max Lahiff for Ward (70min), Mike Powell for Purdy (70min).
Yellow card: Shawn Pittman (50min).
Bristol: Sean Marsden, Jack Adams, Junior Fatialofa, Ed Barnes, George Watkins, Nicky Little, Richard Bolt; Mark Irish, Ross Johnston, Mako Vunipola, Mariano Sambucetti, Roy Winters, Darren Barry, James Merriman, Iain Grieve ©.
Replacements: Ollie Hayes for Johnston (53min), Wayne Thompson for Vunipola (53min), Robbie Shaw for Bolt (58min), Adrian Jarvis for Little (60min), Jamie Miller for Sambucetti (64min), Jack Tovey for Fatialofa (65min), Marco Mama for Merriman (70min).
Officials: Ref – Luke Pearce; TJ’s Keith Lewis & Gareth Copsey.
Half-time: 18-9
Attendance: 1,940