Bath came from 10 points in arrears to claim a battling Heineken Cup victory over Leinster at the RDS in Dublin.
Leinster 19 (13)
Pens: Contepomi (3)
Bath 22 (9)
Pens: Barkley (4)
Felipe Contepomi notched all Leinster's points including an early try which helped the Irish province lead 10-0.
However, three Olly Barkley penalties cut Leinster's lead to 13-9 at the break as Bath began to dominate.
Chris Malone's clever quick penalty set up Andy Beattie's crucial second-half try and Bath withstood late Leinster pressure to claim a vital victory.
Leinster made a lively start and Contepomi struck the Irish province ahead with a superb drop-goal from 35m in the fourth minute.
After a fumble deep in his own 22 by French wing David Bory in the eighth minute, Brian O'Riordan sniped over the Bath line but brilliant defence by Lee Best and Martyn Wood prevented the touchdown.
However, Leinster could not be stopped two minutes later when a slick midfield exchange between Contepomi and Gordon D'Arcy enabled the Argentine fly-half to storm over the Bath line.
Contepomi's successful conversion extended Leinster's lead to 10-0 and an exchange of penalties by Barkley and the Argentine maintained Leinster's 10-point lead by the 20th minute.
Zak Feaunati wins possession for Bath
With their pack starting to gain their expected grip over Leinster's suspect eight, Bath started to dominate in the closing stages of the first half.
The Bath pressure yielded successful penalties from Barkley in the 32nd and 40th minutes which cut Leinster's lead to 13-9 by half-time.
Following the restart, sustained Bath pressure led to the sin-binning of David Blaney after he had killed the ball just short of the Leinster line.
Instead of kicking the easy points, Malone cleverly chipped for the corner and flanker Beattie grabbed the ball to notch the try which was converted from the touchline by Barkley to leave Bath 16-13 ahead.
Leinster regrouped to force a penalty which Contepomi landed to bring the sides level, but he missed a glorious chance on the hour to restore the lead with a failed 30m penalty.
Dissent from the Leinster fly-half then allowed Barkley to slam over a long-range penalty which put Bath back into the lead in the 66th minute.
A marvellous drop goal from Malone extended Bath's lead to six points in the 71st minute before Contepomi replied to leave three points between the sides with five minutes of normal time left.
Leinster produced intense pressure late on but Bath held firm to claim a crucial win and the home side's bonus point will have been little consolation.
Leinster coach Michael Cheika:
"We've still got five games to play in the pool - we've got to win them all but we're not giving up.
"We've a tough trip to Glasgow next Sunday to pick ourselves up for.
"I was pleased with the younger players who will learn a lot from the experience of playing in such a pressurised game.
Bath flanker Andy Beattie:
"It wasn't the prettiest of games but we're delighted with the win and we would have taken that scoreline before kick-off.
"Leinster obviously beat us twice last year so we wanted to put that right.
"This away win is a great start to the pool for us."
Leinster: Dempsey, Lewis, D'Arcy, Horgan, Kearney, Contepomi, Corrigan, Blaney, Green, O'Riordan, Gissing, Williams, Potts, Gleeson, Heaslip.
Replacements: Hepworth for Kearney (73), Jackman for B. Blaney (59), O'Meara for O'Riordan (59), O'Kelly for Gissing (59).
Not Used: Byrne, Dillon, Hickey.
Sin Bin: Blaney (45).
Bath: Best, Bory, Cheeseman, Barkley, Welsh, Malone, Wood, Stevens, Mears, Bell, Borthwick, Grewcock, Beattie, Scaysbrook, Fea'unati.
Replacements: Dixon for Mears (76), Delve for Fea'unati (76).
Not Used: Loader, Hudson, Walshe, Davis, Finau.
Ref: Nigel Whitehouse (Wales).