Leinster held onto a three-point half-time advantage for three quarters of the second half. But Rob Henderson's try after 71 minutes and Kelly's second of the game, arrowing through a slack Leinster rearguard, saw the men in red earn their fourth straight win.
On a crisp Cork night Leinster, a place below the hosts in the table, were kicked into the lead by Matt Leek's third-minute penalty.
Munster's Mossie Lawlor replied three minutes later when he ended a sweeping move which saw flanker Eddie Halvey loop a pass out wide for the left winger to romp home. Out-half Jason Holland missed with the conversion, his first miss of four in total.
Leinster regained the lead after 15 minutes despite seeing prop Peter Coyle sin-binned, with Leek's second penalty this time from the left.
Henderson inspired Munster and Kelly's first try as his booming kick paved the way for a swift line-out move and switch with Holland before the centre put Kelly over to the left of the Leinster posts.
However with Munster second row David Pusey sin-binned for infringement, Leinster regained the lead in the third minute of stoppage time, as Aidan Kearney bumped off a tackle from Jason Jones-Hughes to ground the ball after a Leinster maul.
An incisive Henderson break saw South African Shaun Payne advance from his full-back position only to trip over with the Leinster line in sight after five second-half minutes.
But it was the number 15's midfield break which saw Henderson touch down after six pairs of Munster hands had handled the ball from their own 22 to the visitors' line with nine minutes remaining.
Kelly's effort confirmed another late bonus point win for Munster to bring them into fourth place in the Celtic League table.
Final Score: Munster 24 - 13 Leinster
Munster (24) Tries: Kelly 2, Henderson, Lawlor Cons: Holland 2
Leinster (13) Try: Kearney Con: Leek Pens: Leek 2
Shaun Payne; John Kelly, Jason Jones-Hughes, Rob Henderson, Mossie Lawlor; Jason Holland, Eoin Reddan, Simon Kerr, James Blaney, Gordon McIlwham; Trevor Hogan, David Pusey; Stephen Keogh, Eddie Halvey, Jim Williams capt.
Replacements: Jerry Flannery, Frank Roche, Peter Malone, Tom Hayes, Donal Sheehan, Frank Murphy, Martin McPhail, Conrad O'Sullivan.
Leinster: Norton, McWeeney, Warner, Quinlan, Burke, Leek, O'Riordan, Bohan, G. Hickie, Coyle, Kearney, Gissing, Breslin, Jennings, Dillon.
Replacements: Brophy, D. Blaney, Crawford, Potts, Whelan, Downey, Brown.