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 number 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 and Contepomi added the conversion to deny Connacht a deserved losing bonus point.