Frédéric Michalak kicked 22 points as Toulon ground their way into the Champions Cup semi-finals with a 32-18 win over Wasps.
Mathieu Bastareaud's first-half try looked like it would be the first of many, as Toulon threatened to run away with it, leading 22-6 at the break.
But two tries from Will Helu in the second half got Wasps right back into it but the defending champions finally killed off the comeback thanks to Ali Williams' late try.
Toulon will host Leinster in a fortnight's time as they take a step closer to a historic third straight title.
While Wasps had more of the ball in the opening minutes, Toulon scored with their first attack through Bastareaud. After Steffon Armitage had squirted off the back of a maul just short of the line, the ball came back quickly and Bastareaud was never going to be stopped from two metres out. Michalak converted to open up a 7-0 lead after as many minutes.
Wasps needed a reaction and they got one after Mamuka Gorgodze was caught with his hands in the ruck, allowing Alex Lozowski to open the visitors' account with a long-range penalty.
The game was starting to be played more in the Wasps half, and after they were caught in possession Steffon Armitage got over the ball to earn a penalty which Michalak slotted to stretch the lead back to seven.
Wasps had their first real chance of the game midway through the half, and unsurprisingly it came from a half-break Elliot Daly, who fed Rob Miller outside him. The full-back's pass to Tom Varndell was batted back by Drew Mitchell, preventing a certain try as Toulon survived.
Miller was back in action a minute later, but in defence this time, as Guilhem Guirado waltzed straight through in midfield. While Miller managed to get back to haul down Guirado, he then refused to let the ball go, and was sin-binned for his troubles. Michalak added the three points as Toulon started to open up a useful lead.
Despite being a man down, Wasps were able to cut their deficit after Armitage detached a little early from a scrum, with Lozowski slotting his second penalty of the afternoon.
That good work was soon undone though as Kearnan Myall pulled Williams' hand away in a lineout, and Michalak made it four from four to make it 16-6 to the home side.
They were almost in again before Miller returned when Delon Armitage claimed his own up-and-under before the ball was spread wide. Maxime Mermoz didn't have the pace to get there, and Guirado couldn't hold on to the centre's inside ball.
Wasps survived the remainder of their period with a man fewer, but Toulon were again on the attack and Chris Masoe was stopped just short of the line. James Haskell was caught offside as the ball came back, and while Toulon couldn't get over the line, they added three more points through the boot of Michalak.
Haskell was again the culprit two minutes later as he failed to roll away from a ruck quickly enough, giving Michalak a chance at three more points, and the French international made no mistake to make it 22-6 to the defending champions.
That was how it remained at half-time, with Wasps getting into the Toulon 22 for the first time in the final minute of the half, only to concede a penalty as their support was too slow in arriving.
Wasps introduced Andy Goode early in the second half for Lozowski in an effort to turn things around, and their scrum appeared to be on top at least.
They were still struggling to break through the Toulon defensive line though, and the champions were inches away from their second try on 48 minutes, but after slipping three tackles, Delon Armitage stumbled a metre short of the line and couldn't quite get it down as Miller got back to hold the ball up.
Having struggled in recent weeks in the second halves of games, Toulon once more failed to take their chances, with Masoe stopped short after carrying off the back of the scrum, before Steffon Armitage was held up and conceded possession as a result.
And Wasps gave themselves some hope as they came straight back down the field, scoring their first try through Helu. After setting up a maul, Wasps then went through the backs, and when Josua Tuisova slipped in midfield, it opened up the space out wide for Daly to send Helu over. Goode converted and Wasps were back to within nine points.
Bernard Laporte decided it was time to introduce Matt Giteau, the Australian making his first appearance since January, but Wasps again threatened when Miller was just hauled into touch by Mitchell on the left.
Toulon then came back, and almost sealed the win with a counter-attack that ended with Steffon Armitage stopped five metres out. When the ball came back, the pass didn't got to hand and Joe Simpson was able to dive onto it to save his side.
The ball was back where Toulon wanted it though, deep in Wasps territory, and after one huge scrum they earned a simple penalty in front of the posts, with Michalak taking his personal tally to 20 points.
However Toulon's inability to kill the game off meant that Wasps still had a chance, and after a long period of possession in the home 22, Helu stepped inside Tuisova's tackle to dot down once more. Goode could not convert, but Wasps were back to within seven points.
The defending champions looked a little rattled, but they responded like the champions they are, working some space out wide for Giteau to send Williams over. Michalak completed a perfect afternoon from the kicking tee with a touchline conversion to seal the victory.
Now Toulon will turn their attentions to a semi-final against Leinster in Marseille, a repeat of last year's quarter-final clash between the two sides.
Tries: Bastareaud, Williams
Cons: Michalak 2
Pens: Michalak 6
Tries: Helu 2
Pens: Lozowski 2
Yellow Card: Miller
Toulon: 15 Delon Armitage, 14 Josua Tuisova, 13 Mathieu Bastareaud, 12 Maxime Mermoz, 11 Drew Mitchell, 10 Frederic Michalak, 9 Sebastien Tillous-Borde, 8 Chris Masoe, 7 Steffon Armitage, 6 Mamuka Gorgodze, 5 Ali Williams, 4 Bakkies Botha, 3 Carl Hayman (c), 2 Guilhem Guirado, 1 Alexandre Menini
Replacements: 16 Jean-Charles Orioli, 17 Xavier Chiocci, 18 Levan Chilachava, 19 Juan Fernandez Lobbe, 20 Rudi Wulf, 21 Matt Giteau, 22 Michael Claassens, 23 Jocelino Suta
Wasps: 15 Rob Miller, 14 William Helu, 13 Elliot Daly, 12 Andrea Masi, 11 Tom Varndell, 10 Alex Lozowski, 9 Joe Simpson, 8 Guy Thompson, 7 James Haskell (c), 6 Ashley Johnson, 5 Kearnan Myall, 4 Bradley Davies, 3 Lorenzo Cittadini, 2 Edd Shervington, 1 Matt Mullan
Replacements: 16 Carlo Festuccia, 17 Simon McIntyre, 18 Jake Cooper-Woolley, 19 James Gaskell, 20 Thomas Young, 21 Charlie Davies, 22 Andy Goode, 23 Alapati Leiua
Venue: Stade Félix Mayol, Toulon
Referee: George Clancy (Ireland)
Assistant referees: Dudley Phillips (Ireland), Gary Conway (Ireland)
TMO: Marshall Kilgore (Ireland)