Glasgow Warriors maintained their winning start to the season and moved to the top of the Pro12 by inflicting Leinster's first loss of the campaign.
Chris Fusaro's try, converted by Stuart Hogg, helped Glasgow into a 7-3 lead at the interval.
Jimmy Gopperth had earlier kicked the visitors into the lead and his second penalty reduced the deficit to one point in the second half.
But Jerry Yanuyanutawa's try secured victory for the hosts.
The Warriors, who last won their opening three league matches in 2002, claimed victory despite missing six kicks with defending champions Leinster restricted to little attacking play, particularly after the break.
Both sides were forced into late changes to their line-up with Tommy Seymour replacing DTH van der Merwe for the hosts and Lote Tuqiri starting in place of Darragh Fanning for Leinster.
The visitors disrupted some of Glasgow's early line-outs and the Warriors struggled to impose themselves in the first half.
Gopperth kicked the evening's first points after a collapsed scrum - but Hogg was unable to level with either of Glasgow's first two penalties.
And there was more frustration for the home fans when the Warriors' first serious assault towards the line was ended by a knock-on.
But perseverance paid off for Gregor Townsend's side as Fusaro forced his way over following a line-out near Leinster's left-hand corner.
Hogg converted but then missed a third penalty to keep the gap at four points going into the break.
Mark Bennett took over kicking duties for the hosts in the second half and his first attempt from near halfway clattered back off the post.
Glasgow's determination to get a second try was typified by Ruaridh Jackson's tackle on Ian Madigan, who retrieved following Bennett's penalty, and Leinster endured more pressure from a series of pick-and-drive phases.
A charge led by Rob Kearney helped the visitors gain territory and a Glasgow infringement led to Gopperth's second successful penalty.
Warriors responded and Alex Dunbar's break should have resulted in more than just the scrum the hosts gained and subsequently failed to profit from.
Further scrummaging near the Leinster try line eventually led to a penalty for offside and Jackson's effort was wide.
But Glasgow did manage to increase their lead from a line-out with substitute Yanuyanutawa coming from the back of a maul to touch down.
The home side's kicking frustration continued though as Jackson's conversion attempt rebounded off the left-hand post and Leinster knew a converted try could give them victory.
But any fears of a late turnaround were dispelled when Josh Strauss stole from a Leinster line-out and the ball was soon put into touch to confirm a ninth straight home win for the Warriors.
Glasgow: Hogg, S. Lamont, Bennett, Dunbar, Seymour, Jackson, Cusiter, Grant, MacArthur, Welsh, Gray, Swinson, Harley, Fusaro, Vernon. Replacements: McGuigan for Hogg (60), Yanuyanutawa for Grant (70), Hall for MacArthur (54), Kalman for Welsh (54), Strauss for Fusaro (60), Eddie for Vernon (70). Not Used: Pyrgos, Wight.
Leinster: Madigan, D. Kearney, Macken, D'Arcy, L Tuqiri, Gopperth, Boss, J. McGrath, Strauss, Ross, McCarthy, Denton, K. McLaughlin, Jennings, Murphy. Replacements: Reid for D'Arcy (79), Reddan for Boss (61), Healy for J. McGrath (54), Dundon for Strauss (70), Moore for Ross (73). Not Used: Toner, Ryan, R. Kearney.
Ref: Peter Fitzgibbon (Ireland)