Josh Lewsey produced a vintage performance that inspired Wasps to victory at Twickenham - but their Heineken Cup ambitions remain up in the air.
Wasps could live to regret allowing Leinster to earn a losing bonus point by accepting a late shot at goal instead of pushing for a try which would have seen them take control of Pool Two.
As it stands now, Wasps must earn a better result in Castres next weekend than Leinster manage at home to Edinburgh in order to guarantee a place in the quarter-finals.
Wasps will be frustrated by the end result about as much as they were frustrated to see uncontested scrums introduced after Leinster lost two props inside 37 minutes.
By that point, Wasps had moved 16-6 ahead and scored the only try, finished by Serge Betsen but created by a lightning break from Lewsey and powerful run from his former England colleague Paul Sackey.
Lewsey retired from England duty after being overlooked during the November internationals but still has Lions ambitions and did his chances of selection no harm with an all-action display.
But Wasps will be left kicking themselves after four penalties from Felipe Contempomi ensure Leinster remain favourites to qualify as Pool Two winners.
The 30,000-plus attendance at Twickenham was three times the number Wasps could have housed at Adams Park and they certainly witnessed an action-packed afternoon, which included three yellow cards but only 37 minutes of scrummaging.
CJ van der Linde and Stan Wright both started after passing fitness tests - but neither lasted until the interval as Leinster, having been under the kosh up front throughout the first half, forced uncontested scrums.
On the back of that forward dominance and an electric performance from their back three, Wasps opened up a 10-point lead with Betsen's try and 11 points from Danny Cipriani.
In blustery conditions, Cipriani started the game with two misses from relatively simple penalties before eventually finding his radar to push Wasps ahead.
Wasps surged further ahead with a blistering try finished by Betsen but owing everything to Lewsey's pace and vision and Sackey's power.
Lewsey dummied a kick and burst past the stranded Leinster lock Leo Cullen before Sackey fended off three defenders - and when George Skivington was hauled down just short of the line Betsen collected the loose ball and dived over.
Leinster lost Van der Linde and Cullen in a double substitution after 18 minutes before Contepomi nudged them onto the scoreboard.
Cipriani replied in kind before Leinster were reduced to 14 men when Kearney was sin-binned for his part in a scrap with Sackey after being tackled into touch.
Wasps took swift advantage with Lewsey crashing onto an inside pass from Cipriani and over the gainline before Haskell's determined run earned a simple penalty under the posts.
The last seven minutes of the half was full of drama. Betsen was sin-binned for a cynical trip on Contepomi, who was chasing down the loose ball after Cipriani had dropped his second high ball of the evening.
Contempomi slotted the penalty but Leinster were back at full strength for barely a minute when Kearney was replaced in the sin-bin by Malcolm O'Kelly, who was despatched for an apparent stamp on Phil Vickery's head.
A minute later, Wright left the field with ice on his neck and the match was reduced to uncontested scrums.
Contepomi pushed Leinster to within four points at 13-9 with the last kick of the first half and without any forward contest the game was a fractured affair after the interval.
Contempomi and Cipriani exchanged penalties before Brian O'Driscoll returned from a spell in the blood-bin to inspire Leinster's best attacking period of the match.
Lewsey came close to scoring the try he deserved with another barnstorming run but Leinster kept him out with some determined defence.
Wasps earned a kickable penalty three minutes from time and Vickery took the kick, which Dave Walder converted. It sealed the win but also gifted Leinster the losing bonus point.