Bristol held off Connacht to claim a bonus-point win and get their Heineken Champions Cup campaign back on track in Galway.
Bryan Byrne scored the only try of a disjointed first half before the visitors extended their lead following Bundee Aki's yellow card, with scores from Ed Holmes and Piers O'Conor.
Tiernan O'Halloran brought Connacht back into the game just before the hour mark but Ioan Lloyd's try gave Bristol the breathing space required to hold on, despite John Porch's late score.
After successive defeats, Connacht's door to the quarter-finals is all but closed while Bristol will take renewed hope into their two January fixtures having taken five points from their opening two games.
The two halves in the west of Ireland could scarcely have been more contrasting, with the first 40 an attritional forward-dominated battle and the second a wonderfully entertaining exhibition of running rugby from both sides.
Former Leinster front row Byrne made his mark on returning to Irish soil with the game's first points after 35 minutes.
The hooker powered over from the back of the maul after Connacht coughed up possession in their own 22 as their misfiring lineout was punished again, as it was last week in Paris.
Sides spring into life in second half
Bristol, and their array of running threats, had been well marshalled by Connacht until they were temporarily reduced to 14 men when Aki was sin-binned two minutes into the second half.
The visitors made hay with their numerical advantage, first scoring through Holmes who crossed after collecting Nathan Hughes' pass and cross the line after the back row made a bulldozing run.
O'Conor's try just three minutes later came as Bristol stretched the Connacht defence, giving the centre enough of a lane to sell a dummy and run in.
As has become something of their hallmark, Connacht refused to quit despite their considerable deficit, and soon found a foothold when replacement O'Halloran crashed over following sustained pressure on the Bristol line.
Lloyd's diving score in the right-hand corner nine minutes from time secured the bonus-point for Bristol, despite the Bears being down to 14 men following Siale Piutau's yellow card for a deliberate knock-on.
The hosts went in search of at least a losing bonus-point and reduced the arrears through Porch's try, but they were held out by Bristol in the final play of the match to see them finish outside the seven-point margin.
Connacht: Porch; Wootton, Aki, Arnold, Healy; Carty, Marmion; Buckley, Heffernan, Bealham, E Masterson, Dillane; S Masterson, Oliver, Boyle.
Replacements: Delahunt, Duggan, Aungier, Prendergast, Butler, Blade, Daly, O'Halloran.
Bristol: Malins; Naulago, O'Conor, S Piutau, Leiua; Sheedy, Randall; Woolmore, Byrne, Sinckler, Attwood, Holmes; Luatua (capt), Earl, Hughes.
Replacements: Capon, Lahiff, Afoa, Joyce, Thomas, Uren, Lloyd, Adeolokun.