European champions Wasps completed the double as they edged to a narrow victory against Bath in the Zurich Premiership final.
Conversion: Van Gisbergen
Drop goal: King
Drop goal: Malone
Bath had the upper hand for the first hour as Wasps struggled in the lineout.
But Wasps had the greater attacking threat and the match-winning try came midway through the second half from centre Stuart Abbott.
Mark van Gisbergen converted and Alex King also dropped a goal for Wasps with Chris Malone kicking Bath's points.
Bath fly-half Malone slotted an early penalty but missed a simple chance to double the lead when he pushed his second attempt wide after 15 minutes.
At that point Bath were dominating possession and Wasps were in all sorts of trouble, especially at the lineout, where they lost their first four throws.
However, Rob Howley looked as though he had got the champions on the scoreboard against the run of play when he intercepted a Mike Tindall pass and raced over under the posts after 21 minutes.
But referee Chris White was playing advantage to Bath after a Wasps knock-on and Howley's dash was in vain.
As the half wore on Wasps continued to struggle in the lineout - they lost eight on their own throw in the first half alone - and without any meaningful possession they could not get their game going.
Bath, on the other hand, had plenty of ball, but their game plan involves a tight game and they were unable to break through the all-embracing Wasps defence.
Apart from one powerful Andy Beattie drive, which was ended by a knock-on, they rarely threatened the Wasps line.
After their first-half showing Wasps could only improve and they went on the attack immediately after the re-start, with King bringing them level with a drop goal.
Wasps struggled in the lineout until they replaced hooker Trevor Leota
But once again their lineout problems resurfaced, and after they lost two in a row Malone popped over a drop goal to nudge Bath back in front 6-3.
Wasps coach Warren Gatland finally bit the bullet and replaced below-par hooker Trevor Leota with Ben Gotting, and from his first two throws Wasps immediately won the ball twice.
It signalled a change in the game's fortunes and Wasps, for so long on the back foot, began to take charge.
However, it took a Bath mistake for them to take the lead when Malone, under pressure from Wasps flanker Paul Volley, threw a loose pass which Tom Voyce pounced on.
The alert winger found Abbott in support and he out-paced the defence to score in the corner.
Mark van Gisbergen's magnificent conversion from the touchline put Wasps four points ahead, a margin which was to prove crucial.
Malone and Catt both missed drop goals for Bath and as the game entered extra-time the west country side were awarded a kickable, albeit difficult penalty.
Instead of attempting to cut the gap to one point they decided to go for touch, and from the resulting lineout Wasps managed to resist their attempts to battle their way over.
And then, in the 89th minute of the match, Bath were awarded another kickable penalty.
Again they went for touch, this time winning a lineout only five metres from the Wasps line.
But try as they might Bath could not batter their way over and Wasps held out to complete a famous double of Zurich Premiership and Heineken Cup.
Bath: Catt, A Higgins, Fleck, Tindall, Crockett, Malone, Wood, Barnes, Humphreys, Bell, Borthwick, Grewcock, Beattie, Lipman, Fea'unati.
Replacements: Martens, Mears, Stevens, Barkley, Scaysbrook, Fidler, Human.
Wasps: Van Gisbergen, Lewsey, Waters, Abbott, Voyce, A. King, Howley, Payne, Leota, Green, S. Shaw, Birkett, Worsley, Volley, Dallaglio.
Replacements: Nwume, Lock, Gotting, Purdy, Richards, Denney, Erinle.
Referee: Chris White (England)