London Irish notched a crucial Guinness Premiership win over Bath on Saturday, gaining significant ground on the other teams in the hunt for a Heineken Cup place as the season approaches its final third.
Sailosi Tagicakibau and Topsy Ojo ran in first-half tries for the Exiles with Shane Geraghty adding a conversion and a penalty.
But they nearly threw it away by failing to finish a string of chances - notably when Bath were down to 14 men after Nick Abendanon was in the sin bin - and a late score from England lock Danny Grewcock, converted by Olly Barkley, forced them to work hard for what should have been a runaway win.
Irish made four changes to the side beaten at Saracens three weeks ago, restoring Shane Geraghty at fly-half in the week the 20-year-old signed a three-year contract with the club.
Nils Mordt returned from England Sevens duty to start at outside centre with Phil Murphy coming into the back-row and Tonga Lea'aetoa at loose-head prop.
Bath declined to give their England contingent the day off, meaning Grewcock's return in the second row with Lee Mears at hooker, while Barkley was switched to fly-half in place of Chris Malone.
Grewcock and Mears both made it through the contest, although not without some alarms. Mears received treatment for a knock on his left shoulder, while Grewcock was involved in a running battle with Nick Kennedy, a first half shoving match followed by both trading air-shots early in the second-half.
Points were at a premium for two sides with aspirations of making the end of season play-offs but Irish were looking over their shoulders too, only 10 points clear of bottom side Worcester.
Not for long, though, particularly after a sparkling first-half performance that left Bath on the ropes as the Exiles went 15-0 up in the first 25 minutes with the visitors reduced to 14 men.
Lock Bob Casey created the first with a surge towards the line that drew in tacklers before Mike Catt flipped the scoring pass for Tagicakibau to go over in the corner eight minutes into the game.
Bath were in trouble again after 15 minutes when they spilled the ball to concede the position from which Ojo scored coming in from the blindside to take a delicious reverse pass from Kieran Roche with Geraghty adding the conversion.
A second turn-over ignited another break-out when Tagicakibau raced 50 metres down the left and full-back Abendanon was yellow-carded by referee Wayne Barnes for killing the ball.
Geraghty stretched the lead with a straightforward penalty but while he was off the field Irish somehow failed to finish two more promising moves when Tagicakibau and Ojo were wide open.
Bath dug in after that to reach the break without conceding any more points, although Barkley's long-range penalty miss was the closest they came to scoring.
Defensively, they made a more encouraging start to the second-half by blotting out some promising Irish attacks and gaining a foothold up front for Steve Borthwick and Andy Beattie to carry the ball over the half-way line.
They finally built up a head of steam going into the final quarter, first when Matt Stevens got within a metre to the line on the right and decisively when Grewcock was driven over from a close-range line out 10 minutes from time with Barkley converting.
That gave Irish some anxious moments, but they worked their way into Bath territory to run down the clock and the visitors could not find away out of their own 22 again.
For London Irish:
Tries: Tagicakibau, Ojo
Yellow card: Abendanon (23, Bath)
London Irish: 15 Delon Armitage, 14 Topsy Ojo, 13 Nils Mordt, 12 Mike Catt (captain), 11 Sailosi Tagicakibau, 10 Shane Geraghty, 9 Paul Hodgson, 8 Phil Murphy, 7 Steffon Armitage, 6 Kieran Roche, 5 Bob Casey, 4 Nick Kennedy, 3 Faan Rautenbach, 2 Danie Coetzee, 1 Tonga Lea'aetoa.
Replacements: 16 Neal Hatley, 17 Robbie Russell, 18 James Hudson, 19 Juan Leguizamon, 20 Riki Flutey, 21 Ben Willis, 22 Barry Everitt.
Bath: 15 Nick Abendanon, 14 Michael Stephenson, 13 Eliota Fuimaono-Sapolu, 12 Shaun Berne, 11 Joe Maddock, 10 Olly Barkley, 9 Nick Walshe, 8 Isaac Feaunati, 7 Gareth Delve, 6 Andy Beattie, 5 Danny Grewcock, 4 Steve Borthwick (c), 3 Matt Stevens, 2 Lee Mears, 1 David Barnes.
Replacements: 16 Pieter Dixon, 17 Aaron Jarvis, 18 Peter Short, 19 James Scaysbrook, 20 Andy Williams, 21 David Bory, 22 Chev Walker.
Referee: Chris White
Touch judges: Wayne Barnes, Ken Stewart
Assessor: Ed Morrison
Television match official: Brian Abrahams