Connacht were within 15 minutes of recording another shock victory over Leinster but the Magners League champions rallied to post a dramatic win at the RDS.
A quick break inside the opening five minutes put Leinster on course to avenge October's shock 19-18 loss at Connacht, but the visitors fought back to take an 18-14 lead, with all their points coming from the boot of Ian Keatley. But Leinster turned things around late on, with tries from Rob Kearney and Luke Fitzgerald seeing them home to a nailbiting win.
Leinster opened strongly as Isa Nacewa, playing once again at No.10, broke free. Stephen Keogh was grounded five metres short, but the power of the home pack made Connacht pay, driving Trevor Hogan across the line.
Galvanised by Felipe Contepomi's missed conversion, Connacht clawed their way back with former Leinster Academy player Keatley making them pay for indiscipline, which marred both sides' play, by sending over an eighth-minute penalty. A touch judge then ruled that Fitzgerald had put a foot into touch before crossing the try-line, which would have given Michael Cheika's side some breathing space.
Back came Connacht again as a Keatley drop goal attempt went agonisingly wide before Contepomi and Keatley exchanged penalties to leave it 8-6 to Leinster after 15 minutes. The indiscipline of both packs around the scrum and ruck area was a constant feature of the game, with Connacht prop John Lyne sin-binned and Leinster prop Stan Wright warned.
This gave Contepomi and then Keatley the opportunity to add to their tallies before the half-time whistle blew. A last-minute penalty from Keatley could have sent Connacht into the lead at the break but his effort sailed wide and Leinster turned around with a 14-12 lead.
Keatley opened the second half with a penalty and increased Connacht's lead to 18-14 following Wright's sin-binning for a punch-up. But the outstanding Keatley would end up on the losing side as his team-mates failed to match his brilliance with the boot.
Kearney showed a fine burst of pace to go over in the 68th minute and dent Connacht's chances of scoring a double over Leinster. Replacements Malcolm O'Kelly, Cian Healy and Brian O'Driscoll gave Leinster the boost they needed in the closing 10 minutes.
Nacewa danced past three Connacht players before releasing Rocky Elsom who, in turn, sent O'Driscoll clear. The break finished with a dubious pass which Fitzgerald took and touched down underneath the posts. Contepomi added the conversion to deny Connacht a deserved losing bonus point.
Speaking after the game, Leinster Coach Michael Cheika said: "I am pleased with the way in which we held our nerve because we lost our way a bit in the second half. It was a stop-start game with a lot of penalties, but I did think we played well in the first half. I thought we passed the ball better this week and we should have finished it at the end."
Flanker Rocky Elsom added, "It was a good win. We probably could have gotten the fourth try at the end, but we're very happy to have won because we kept at it. We always feel confident when we have the ball and you can see the huge amount of competition in the squad. Trevor Hogan and Cameron Jowitt came in and did very well and I felt our lineout worked very well today."
Leinster: Kearney, D'Arcy, Fitzgerald, Contepomi, S. Keogh, Nacewa, Whitaker, McCormack, Fogarty, Wright, Hogan, Jowitt, Elsom, Jennings, S. Keogh.
Replacements: Horgan for Kearney (70), O'Driscoll for S. Keogh (53), Keane for Whitaker (79), Healy for McCormack (51), O'Kelly for Hogan (50). Not Used: Blaney, O'Brien.
Connacht: Carr, Nathan, Ta'auso, Deane, Bibo, Keatley, Murphy, Lyne, Flavin, Morris, Swift, Farley, McCarthy, J. Muldoon, Rigney.
Replacements: Loughney for Lyne (54), Gannon for McCarthy (64). Not Used: Browne, Campbell, Dunne, Hearty.
Att: 16,350
Ref: Peter Fitzgibbon (Ireland).