Wasps (13) 19
Tries: Betsen Cons: Cipriani Pens: Cipriani 3, Walder
Leinster (9) 12
Pens: Contepomi 4
Paul Sackey played a major role in Wasps' fine try
Leinster will go into the final round of Heineken Cup group matches on top of Pool Two after claiming a vital losing bonus point at Twickenham.
Wasps led 13-9 at the break courtesy of Serge Betsen's try and a conversion and two penalties from Danny Cipriani, to three Felipe Contepomi penalties.
They added another kick each and Dave Walder's penalty was not enough to deny Leinster a losing bonus point.
The two sides have 16 points each, but Leinster are favourites to finish top.
Leinster's last game is against Edinburgh in Dublin, while Wasps travel to Castres and if the two teams are still level following next weekend's final round of games then the side with the better head-to-head record will finish top.
That means Leinster, who hammered Wasps 41-11 in round two, are favourites to top the group, although the victory means Wasps are well in contention for one of the two best runners-up spots.
After a dire start to the season Wasps went into the game showing signs of form and they had the upper hand in the opening stages in front of over 33,000 at Twickenham.
Wasps fly-half Cipriani's season has mirrored his team's and he badly hooked an early penalty before hitting a post with a long-range effort just before the 10-minute mark.
He finally squeezed one just inside the right-hand post after 12 minutes to open the scoring before Wasps exploded into life with a dazzling try.
Josh Lewsey fielded Isa Nacewa's kick inside his own half and faked to kick himself before stepping off his right foot and hitting the accelerator.
He scythed past five defenders before firing out a long pass to Paul Sackey and the winger handed off another three as he surged to within a few yards of the line.
George Skivington just failed to batter over from five metres but when the ball fell loose veteran French flanker Betsen was on hand to pick up and dive over.
Cipriani converted to give Wasps a 10-0 lead but Leinster shrugged off the loss of captain Leo Cullen and loose-head prop CJ van der Linde to injury to land their first points through a Contepomi penalty.
Wasps soon hit back in kind through Cipriani but Contepomi, after hitting the post himself, succeeded with two more penalties to make it 13-9 at the break.
There was a flurry of yellow cards before the interval with Leinster losing Rob Kearney, harshly, and Malcolm O'Kelly - who was lucky not to see red for using his boot on Phil Vickery's head - while Wasps had Betsen sin-binned for a trip.
The game also went to uncontested scrums after 37 minutes when Leinster lost their second prop in Stan Wright.
It was hard on Wasps who had enjoyed the upper hand in that phase of the game, with a rejuvenated Vickery in dominant form.
The lack of contested scrums seemed to affect the structure of the game and after a fine first 30 minutes aimless kicking began to dominate proceedings.
A penalty apiece for Cipriani and Contepomi either side of the hour mark meant there were still only four points separating the sides entering the last quarter of the game.
Contepomi missed a penalty with 10 minutes to go and Wasps went on the attack in the closing stages, with Lewsey nearly scoring a fine solo try but stumbling as he tried to beat the final defender.
They were then awarded a late penalty deep in Leinster territory but rather than kick to the corner and attempt to score a try, Wasps decided to take a shot at goal, which seemed a strange decision.
If they managed to score a try it would take them back into a lead of more than seven points, which would deny Leinster a bonus point and put Wasps back on top of the group.
That would have meant their Heineken Cup future was back in their own hands when they travelled to France but instead they decided to kick for goal.
Walder, on with 10 minutes to go for Cipriani, duly bisected the posts to restore Wasps' seven-point lead, but that was not enough to deny Leinster their losing bonus point and the Irish side head back to Dublin knowing the group is there for the taking.
Wasps boss Ian McGeechan on Walder's late shot at goal:
"The decision was made on the field. We had been talking about winning first and there is another week's competition to go yet.
"They were thinking points on the board and to make sure we got the win. The other side is, could we have gone for a line-out?
"Shaun (Edwards) was keen to but the decision was made. Our first priority had to be winning. We couldn't think about anything else."
McGeechan on next week's games:
"It is more realistic to say five points gives us the best chance of winning the group - but I would hate to go for five points and get none because you have to look across the pools.
"Our intention is to win the pool - but we have to go to Castres and win first and foremost and see what happens in Dublin."
Leinster boss Michael Cheika:
"I am disappointed we lost the game but we are still in charge of our own destiny, although if we want to be sure of ourselves we need a bonus point next week."
Wasps: Van Gisbergen; Sackey, Waldouck, Flutey, Lewsey; Cipriani, Reddan; Payne, Webber, Vickery, Shaw, Birkett, Worsley, Betsen, Haskell.
Replacements: Voyce for Waldouck (66), Walder for Cipriani (70), Simpson for Reddan (80), Leo for Payne (66), Ward for Webber (29).
Not Used: French, Skivington.
Sin Bin: Betsen (33).
Leinster: Kearney; Horgan, O'Driscoll, Contepomi, Fitzgerald; Nacewa, Whitaker; Wright, Jackman, van der Linde, Cullen, O'Kelly, Elsom, Jennings, Heaslip.
Replacements: D'Arcy for O'Driscoll (56), O'Brien for Wright (37), Fogarty for Jackman (73), Healy for van der Linde (18), Hogan for Cullen (18).
Not Used: Keane, Dempsey.
Sin Bin: Kearney (26), O'Kelly (37).
Ref: C Berdos (France).