London Irish moved top of the English Premiership table after coming from behind to beat basement side Bristol at The Memorial Stadium as second-placed Bath lost at Harlequins.
The win put Irish level on points with Gloucester but ahead of them on points difference.
Bristol had hoped to secure their second league win of the campaign before kick-off as they lay four points adrift of 11th placed Newcastle at the foot of the table. But that is where they stayed as an interception try by Shane Geraghty on 68 minutes proved decisive.
Despite the return to the starting line-up of former England scrum-half Shaun Perry following months out with a shoulder injury, Bristol made hard work of the match in a grim first period which was dominated by the boot. Fullback Peter Hewat succeeded with two of his three early penalties while both sides were guilty of handling errors and wrong options in possession.
Irish, though, extended their lead to 11-0 when wing Sailosi Tagicakibau ran down the left from 40 metres, evaded attempted tackles from Perry and opposite wing Lee Robinson and sauntered in unopposed for the first try of the game. And Exiles wing Topsy Ojo had the perfect chance to grab his side's second touchdown when fly-half Geraghty cross-kicked to the right only for him to miss the pick-up and the attack to fizzle out.
Bristol were also devoid of ideas with the ball in hand and, in one phase of play, were forced back from just inside the Irish half to their own 10-metre line before Perry hacked a dismal kick straight to Hewat on the Exiles' 22. But, within two minutes of the second-half, fly-half Ed Barnes got the home team's first points of the match with a long 41-metre penalty after Irish were punished for not releasing at a ruck.
Long grubber kicks down field were doing the trick for Bristol and soon their efforts paid off when Barnes got the ball in midfield on the visitor's 22, cross-kicked for Robinson to tussle with Ojo before full-back Luke Arscott took possession and fed centre Luke Eves to go in. Barnes landed a superb conversion and there was only one point in it at 11-10.
The Irish defence, which had been rock solid with the pack, lead by skipper Bob Casey at lock and flanker Declan Danaher to the fore, started to buckle. But after Barnes landed his second penalty of the match to put his side in front for the first time he had a pass intercepted by opposite number Geraghty who sprinted 50 metres under the posts for a try which Hewat simply converted.
That put the Exiles five points in front but, with just five minutes of the match left, Bristol still thought they had a chance to win and, instead of going for a 30 metre penalty, took the attacking line-out. However, referee Wayne Barnes awarded a penalty to the visitors and all but ended the home team's chances of stealing the honours at the death.
London Irish head coach Toby Booth admitted it was a game they should have lost. "It feels like a bit of a loss, to be honest. All credit to Bristol, they were very good. In the second half, every time we got to the halfway line, we gave the ball back. We certainly didn't make life easy for ourselves and we probably needed to be more clinical in the first half. Then the whole thing would have been a different game.
"Rugby is a simple game. If you control the ball, it is simple. You push the balls into the corner and the people who do that better and control the game are often the ones that come out on top.
"They scored first straight after half-time and we said the first score then would be vital and, as a result, we let them in the game. Fair play to them, they are very committed. But I do want our boys to kick on and achieve the best they can."
Richard Hill, meanwhile, agreed that his club should have won but he is happy to have taken a losing bonus point off the Exiles and thinks Bristol are "getting better".
Head coach Hill said: "Normally, I would say the better team won but, on this occasion, we deserved to win that and I feel very sorry for the players, they put a lot of effort into that second half, particularly. They had it well under control and the only time that Irish actually got the ball is when we gave it to them on a plate. It happens but it is our own fault.
"We are bitterly disappointed and sometimes you wonder what you have got to do to win a game. Lady Luck is probably not on our side at the moment but we are partly responsible for that ourselves.
"We will keep battling away and, hopefully, we will get those little narrow wins we need. At 11-0, you could almost sense that Irish thought that was not enough. At half-time, all the players thought it was achievable to peg back that lead. The crowd got behind us and, really, there was only one team in it then.
"And we had the game under control until that interception try which was a bit cruel when you see a team which are top of the league now and we dominated them for 40 minutes."
Bristol: L. Arscott, Robinson, Brew, Eves, Lemi, Barnes, Perry, Clarke, Regan, Crompton, Winters, Sidoli, To'oala, El Abd, Ward-Smith.
Replacements: Sambucetti for Winters (11). Not Used: Linklater, Bracken, R. Pennycook, Beveridge, Jarvis, T. Arscott.
London Irish: Hewat, Ojo, Seveali'i, Mapusua, Tagicakibau, Geraghty, Hodgson, Dermody, Paice, Lea'aetoa, Roche, Casey, Danaher, S. Armitage, Hala'ufia.
Replacements: Homer for Geraghty (69), Corbisiero for Dermody (57), Johnson for Roche (57), Thorpe for Hala'ufia (57). Not Used: Buckland, Lalanne, Gower.
Att: 6,225
Ref: W Barnes (RFU).